Fix: soldier automatically taunts us whenever we steal, making stealth impossible

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8526 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2018-02-24 20:45:27 +00:00
parent c7d68dbd55
commit 7a537c3a2e
+12 -5
View File
@@ -3508,12 +3508,14 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
// otherwise, if we are the player, we can steal multiple items if the other guy is collapsed, or we are succesful, and // otherwise, if we are the player, we can steal multiple items if the other guy is collapsed, or we are succesful, and
// if using fEnhancedCloseCombatSystem, only allow this if the other guy is not alerted // if using fEnhancedCloseCombatSystem, only allow this if the other guy is not alerted
if ( AllowedToStealFromTeamMate(pSoldier->ubID, pTargetSoldier->ubID) || if ( AllowedToStealFromTeamMate(pSoldier->ubID, pTargetSoldier->ubID) ||
pSoldier->bTeam == gbPlayerNum && ( pSoldier->bTeam == gbPlayerNum &&
( fSoldierCollapsed || ( fSoldierCollapsed ||
( iDiceRoll < ( iHitChance * 2 / 3 ) && ( iDiceRoll < ( iHitChance * 2 / 3 ) &&
!gGameExternalOptions.fEnhancedCloseCombatSystem || ( !gGameExternalOptions.fEnhancedCloseCombatSystem ||
pSoldier->aiData.bAlertStatus < STATUS_RED ) ) ) pTargetSoldier->aiData.bAlertStatus < STATUS_RED ) ) ) ) )
{ {
fStealAttempt = TRUE;
// first, charge extra Aps, because it's difficlut to pickup from other soldier // first, charge extra Aps, because it's difficlut to pickup from other soldier
if (gGameExternalOptions.fEnhancedCloseCombatSystem) if (gGameExternalOptions.fEnhancedCloseCombatSystem)
DeductPoints( pSoldier, (GetBasicAPsToPickupItem( pSoldier ) * 2), 0, AFTERACTION_INTERRUPT ); DeductPoints( pSoldier, (GetBasicAPsToPickupItem( pSoldier ) * 2), 0, AFTERACTION_INTERRUPT );
@@ -3778,9 +3780,12 @@ 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 )
{
// 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 );
} }
}
else else
{ {
// SANDRO - Enhanced Close Combat System - experience for stealing changed // SANDRO - Enhanced Close Combat System - experience for stealing changed
@@ -3801,6 +3806,9 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
} }
} }
// Flugente: no turning if the other guy doesn't notice us...
if ( fFailure || !fStealAttempt || pTargetSoldier->aiData.bAlertStatus >= STATUS_RED )
{
// 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
if ( gGameExternalOptions.fEnhancedCloseCombatSystem && gAnimControl[pTargetSoldier->usAnimState].ubEndHeight != ANIM_PRONE ) if ( gGameExternalOptions.fEnhancedCloseCombatSystem && gAnimControl[pTargetSoldier->usAnimState].ubEndHeight != ANIM_PRONE )
@@ -3814,7 +3822,7 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
// anv: enemy taunt on steal // anv: enemy taunt on steal
PossiblyStartEnemyTaunt( pSoldier, TAUNT_STEAL, pTargetSoldier->ubID ); PossiblyStartEnemyTaunt( pSoldier, TAUNT_STEAL, pTargetSoldier->ubID );
}
} }
// ----------------------------------- // -----------------------------------
@@ -4048,7 +4056,6 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea
pSoldier->aiData.bMonsterSmell--; pSoldier->aiData.bMonsterSmell--;
} }
return( TRUE ); return( TRUE );
} }