FindNearestUngassedLand, FindNearbyDarkerSpot:

- optimization: don't check spots already checked in previous loop
- increase max distance to 35, reduce to 25 if complex AI not allowed, reduce to 15 in realtime
CanDragPerson: use world movement cost instead of LOS check.
Say TAUNT_RELOAD, TAUNT_OUT_OF_AMMO taunts if mag size > 4 or Chance (CHANCE_SAY_ANNOYING_PHRASE).
SpotDangerLevel: also check Water and CorpseWarning for danger level = 1.
ManSeesMan: only call SetNewSituation if location or level are different to reduce frequency of AI re-evaluation.
Only allow radio animation on initial red alert, if sector is not jammed.
Press ESC to stop dragging.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8904 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Sevenfm
2020-10-17 06:30:23 +00:00
parent 43ab995ecd
commit b45af3f575
9 changed files with 72 additions and 23 deletions
+10 -1
View File
@@ -1793,6 +1793,14 @@ void AIDecideRadioAnimation( SOLDIERTYPE *pSoldier )
return;
}
// sevenfm: only allow radio animation on initial red alert
if (gTacticalStatus.Team[pSoldier->bTeam].bAwareOfOpposition || SectorJammed())
{
// don't play animation
ActionDone(pSoldier);
return;
}
switch( gAnimControl[ pSoldier->usAnimState ].ubEndHeight )
{
case ANIM_STAND:
@@ -2555,7 +2563,8 @@ INT8 ExecuteAction(SOLDIERTYPE *pSoldier)
if(bSlot != NO_SLOT)
{
ReloadGun( pSoldier, &(pSoldier->inv[pSoldier->aiData.usActionData]), &(pSoldier->inv[bSlot]) );
PossiblyStartEnemyTaunt( pSoldier, TAUNT_RELOAD );
if (Chance(gGameExternalOptions.iChanceSayAnnoyingPhrase) || GetMagSize(&(pSoldier->inv[pSoldier->aiData.usActionData])) > 4)
PossiblyStartEnemyTaunt( pSoldier, TAUNT_RELOAD );
ActionDone( pSoldier );
}
break;