Fix: if we steal from an enemy, they turn to us if they notice us

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8527 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2018-02-25 16:21:45 +00:00
parent 7a537c3a2e
commit c8e9a3fb8e
+28 -28
View File
@@ -3468,37 +3468,37 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
fFailure=FALSE; fFailure=FALSE;
// Flugente: if we are disguised and try to steal from a conscious enemy, there is a chance that he notices us and we lose our disguise. If he can see us this always happens // does the other guy notice us?
if ( !fSoldierCollapsed && pSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER) ) BOOLEAN fNoticed = FALSE;
if ( fSoldierCollapsed )
;
// if he sees us, he'l notice
else if ( pTargetSoldier->aiData.bOppList[pSoldier->ubID] == SEEN_CURRENTLY )
fNoticed = TRUE;
else
{ {
BOOLEAN fUncovered = FALSE; UINT8 chance = 10;
// if he sees us, always loose disguise if ( pTargetSoldier->aiData.bOppList[pSoldier->ubID] == SEEN_LAST_TURN )
if ( pTargetSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY ) chance += 40;
fUncovered = TRUE;
else
{
UINT8 chance = 10;
if ( pTargetSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_LAST_TURN ) chance += pSoldier->aiData.bAlertStatus * 10;
chance += 40;
chance += pSoldier->aiData.bAlertStatus * 10; if ( Chance( chance ) )
fNoticed = TRUE;
}
if ( Chance(chance) ) // Flugente: if we are disguised and try to steal from a conscious enemy, there is a chance that he notices us and we lose our disguise. If he can see us this always happens
fUncovered = TRUE; if ( fNoticed && pSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER) )
} {
pSoldier->LooseDisguise();
if ( gSkillTraitValues.fCOStripIfUncovered )
pSoldier->Strip( );
if ( fUncovered ) ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_STEAL_FAIL], pSoldier->GetName() );
{ ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_UNCOVERED], pTargetSoldier->GetName(), pSoldier->GetName() );
pSoldier->LooseDisguise();
if ( gSkillTraitValues.fCOStripIfUncovered )
pSoldier->Strip( );
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_STEAL_FAIL], pSoldier->GetName() );
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_UNCOVERED], pTargetSoldier->GetName(), pSoldier->GetName() );
}
} }
// WDS 07/19/2008 - Random number use fix // WDS 07/19/2008 - Random number use fix
@@ -3687,7 +3687,7 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
{ {
// APs are reduced in Handle Items.cpp in "SoldierStealItemFromSoldier" // APs are reduced in Handle Items.cpp in "SoldierStealItemFromSoldier"
} }
else if ( fStealAttempt || (fFailure == TRUE)) else if ( fStealAttempt || fFailure )
{ {
if (HAS_SKILL_TRAIT( pSoldier, MARTIAL_ARTS_NT ) && ( gGameOptions.fNewTraitSystem )) if (HAS_SKILL_TRAIT( pSoldier, MARTIAL_ARTS_NT ) && ( gGameOptions.fNewTraitSystem ))
{ {
@@ -3780,7 +3780,7 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
StatChange( pSoldier, AGILAMT, 3, FALSE ); StatChange( pSoldier, AGILAMT, 3, FALSE );
} }
if ( !fStealAttempt || pTargetSoldier->aiData.bAlertStatus >= STATUS_RED ) if ( fNoticed )
{ {
// anv: enemy taunt on getting robbed // anv: enemy taunt on getting robbed
PossiblyStartEnemyTaunt( pTargetSoldier, TAUNT_GOT_ROBBED, pSoldier->ubID ); PossiblyStartEnemyTaunt( pTargetSoldier, TAUNT_GOT_ROBBED, pSoldier->ubID );
@@ -3807,7 +3807,7 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
} }
// Flugente: no turning if the other guy doesn't notice us... // Flugente: no turning if the other guy doesn't notice us...
if ( fFailure || !fStealAttempt || pTargetSoldier->aiData.bAlertStatus >= STATUS_RED ) if ( fNoticed )
{ {
// SANDRO - Enhanced Close Combat System - Notice merc after stealing // SANDRO - Enhanced Close Combat System - Notice merc after stealing
// sevenfm: don't turn when lying prone // sevenfm: don't turn when lying prone