mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
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:
@@ -16169,6 +16169,10 @@ BOOLEAN SOLDIERTYPE::SeemsLegit( UINT8 ubObserverID )
|
|||||||
if ( !pSoldier )
|
if ( !pSoldier )
|
||||||
return TRUE;
|
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
|
// 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
|
// 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)) )
|
if ( !(this->usSoldierFlagMask & (SOLDIER_COVERT_CIV | SOLDIER_COVERT_SOLDIER)) )
|
||||||
|
|||||||
@@ -1842,6 +1842,12 @@ void GetTargetWorldPositions( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, FLOAT
|
|||||||
dTargetZ += CONVERT_PIXELS_TO_HEIGHTUNITS( gpWorldLevelData[sTargetGridNo].sHeight );
|
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;
|
*pdXPos = dTargetX;
|
||||||
*pdYPos = dTargetY;
|
*pdYPos = dTargetY;
|
||||||
*pdZPos = dTargetZ;
|
*pdZPos = dTargetZ;
|
||||||
@@ -9121,6 +9127,10 @@ void ShotMiss( UINT8 ubAttackerID, INT32 iBullet )
|
|||||||
|
|
||||||
UINT32 CalcChanceHTH( SOLDIERTYPE * pAttacker,SOLDIERTYPE *pDefender, INT16 ubAimTime, UINT8 ubMode )
|
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;
|
UINT16 usInHand;
|
||||||
UINT8 ubBandaged;
|
UINT8 ubBandaged;
|
||||||
INT32 iAttRating, iDefRating;
|
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 )
|
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;
|
INT32 iChance, iMaxRange, iRange;
|
||||||
UINT16 usHandItem;
|
UINT16 usHandItem;
|
||||||
INT8 bPenalty, bBandaged;
|
INT8 bPenalty, bBandaged;
|
||||||
|
|||||||
Reference in New Issue
Block a user