unactivated turncoats ignore suspicious activity.

unactivated turncoats intentionally try to miss when shooting at mercs/militia.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9370 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
rftr
2022-04-24 21:16:13 +00:00
parent 904fae7a96
commit 7b57f834f6
2 changed files with 18 additions and 0 deletions
+4
View File
@@ -16169,6 +16169,10 @@ BOOLEAN SOLDIERTYPE::SeemsLegit( UINT8 ubObserverID )
if ( !pSoldier )
return TRUE;
// rftr: turncoats ignore suspicious people/behaviour
if (gSkillTraitValues.fCOTurncoats && (pSoldier->usSoldierFlagMask2 & SOLDIER_TURNCOAT))
return TRUE;
// if we don't have the Flag: not covert
// important: no messages up to this point. the function will get called a lot, up to this point there is nothing unusual
if ( !(this->usSoldierFlagMask & (SOLDIER_COVERT_CIV | SOLDIER_COVERT_SOLDIER)) )
+14
View File
@@ -1842,6 +1842,12 @@ void GetTargetWorldPositions( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, FLOAT
dTargetZ += CONVERT_PIXELS_TO_HEIGHTUNITS( gpWorldLevelData[sTargetGridNo].sHeight );
}
// rftr: unactivated turncoats intentionally try to miss - aim high
if (gSkillTraitValues.fCOTurncoats && pSoldier && (pSoldier->usSoldierFlagMask2 & SOLDIER_TURNCOAT))
{
dTargetZ += 100.f;
}
*pdXPos = dTargetX;
*pdYPos = dTargetY;
*pdZPos = dTargetZ;
@@ -9121,6 +9127,10 @@ void ShotMiss( UINT8 ubAttackerID, INT32 iBullet )
UINT32 CalcChanceHTH( SOLDIERTYPE * pAttacker,SOLDIERTYPE *pDefender, INT16 ubAimTime, UINT8 ubMode )
{
// rftr: unactivated turncoats intentionally try to miss
if (gSkillTraitValues.fCOTurncoats && pAttacker && (pAttacker->usSoldierFlagMask2 & SOLDIER_TURNCOAT))
return gGameExternalOptions.ubMinimumCTH;
UINT16 usInHand;
UINT8 ubBandaged;
INT32 iAttRating, iDefRating;
@@ -10176,6 +10186,10 @@ INT32 CalcMaxTossRange( SOLDIERTYPE * pSoldier, UINT16 usItem, BOOLEAN fArmed, O
UINT32 CalcThrownChanceToHit(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 ubAimTime, UINT8 ubAimPos )
{
// rftr: unactivated turncoats intentionally try to miss
if (gSkillTraitValues.fCOTurncoats && pSoldier && (pSoldier->usSoldierFlagMask2 & SOLDIER_TURNCOAT))
return gGameExternalOptions.ubMinimumCTH;
INT32 iChance, iMaxRange, iRange;
UINT16 usHandItem;
INT8 bPenalty, bBandaged;