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
+13 -13
View File
@@ -3468,14 +3468,14 @@ 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;
{
BOOLEAN fUncovered = FALSE;
// if he sees us, always loose disguise if ( fSoldierCollapsed )
if ( pTargetSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY ) ;
fUncovered = TRUE; // if he sees us, he'l notice
else if ( pTargetSoldier->aiData.bOppList[pSoldier->ubID] == SEEN_CURRENTLY )
fNoticed = TRUE;
else else
{ {
UINT8 chance = 10; UINT8 chance = 10;
@@ -3486,10 +3486,11 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
chance += pSoldier->aiData.bAlertStatus * 10; chance += pSoldier->aiData.bAlertStatus * 10;
if ( Chance( chance ) ) if ( Chance( chance ) )
fUncovered = TRUE; fNoticed = TRUE;
} }
if ( fUncovered ) // 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
if ( fNoticed && pSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER) )
{ {
pSoldier->LooseDisguise(); pSoldier->LooseDisguise();
@@ -3498,7 +3499,6 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_STEAL_FAIL], pSoldier->GetName() ); 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() ); 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