--- a/hedgewars/uAI.pas Fri Oct 04 23:23:35 2019 +0300
+++ b/hedgewars/uAI.pas Mon Oct 07 14:18:31 2019 +0200
@@ -107,6 +107,7 @@
BotLevel:= Me^.Hedgehog^.BotLevel;
windSpeed:= hwFloat2Float(cWindSpeed);
useThisActions:= false;
+Me^.AIHints:= Me^.AIHints and (not aihAmmosChanged);
for i:= 0 to Pred(Targets.Count) do
if (Targets.ar[i].Score >= 0) and (not StopThinking) then
@@ -432,7 +433,7 @@
switchCount:= HHHasAmmo(PGear(Me)^.Hedgehog^, amSwitch)
else switchCount:= 0;
-if ((Me^.State and gstAttacked) = 0) or isInMultiShoot or bonuses.activity then
+if ((Me^.State and gstAttacked) = 0) or isInMultiShoot or bonuses.activity or ((Me^.AIHints and aihAmmosChanged) <> 0) then
if Targets.Count > 0 then
begin
// iterate over current team hedgehogs
@@ -478,7 +479,7 @@
FillBonuses(false);
// Hog has no idea what to do. Use tardis or skip
- if not bonuses.activity then
+ if (not bonuses.activity) and ((Me^.AIHints and aihAmmosChanged) = 0) then
if (((GameFlags and gfInfAttack) <> 0) or (CurrentHedgehog^.MultiShootAttacks = 0)) and (HHHasAmmo(Me^.Hedgehog^, amTardis) > 0) and (CanUseTardis(Me^.Hedgehog^.Gear)) and (random(4) < 3) then
// Tardis brings hog to a random place. Perfect for clueless AI
begin
@@ -488,6 +489,7 @@
end
else
AddAction(BestActions, aia_Skip, 0, 250, 0, 0);
+ Me^.AIHints := ME^.AIHints and (not aihAmmosChanged);
end;
end else SDL_Delay(100)