hedgewars/uAIMisc.pas
changeset 10510 9329dab04490
parent 10354 56bd029245fc
child 10635 8e8b320eefad
equal deleted inserted replaced
10509:d62d3c706947 10510:9329dab04490
   234                 if (Gear^.State and gsttmpFlag) <> 0 then
   234                 if (Gear^.State and gsttmpFlag) <> 0 then
   235                     AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 20, -50);
   235                     AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 20, -50);
   236 // avoid mines unless they are very likely to be duds, or are duds. also avoid if they are about to blow
   236 // avoid mines unless they are very likely to be duds, or are duds. also avoid if they are about to blow
   237             gtMine: begin
   237             gtMine: begin
   238                 if (Gear^.State and gstMoving) <> 0 then bonuses.activity:= true;
   238                 if (Gear^.State and gstMoving) <> 0 then bonuses.activity:= true;
   239                 
   239 
   240                 if ((Gear^.State and gstAttacking) = 0) and (((cMineDudPercent < 90) and (Gear^.Health <> 0))
   240                 if ((Gear^.State and gstAttacking) = 0) and (((cMineDudPercent < 90) and (Gear^.Health <> 0))
   241                 or (isAfterAttack and (Gear^.Health = 0) and (Gear^.Damage > 30))) then
   241                 or (isAfterAttack and (Gear^.Health = 0) and (Gear^.Damage > 30))) then
   242                     AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 50, -50)
   242                     AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 50, -50)
   243                 else if (Gear^.State and gstAttacking) <> 0 then
   243                 else if (Gear^.State and gstAttacking) <> 0 then
   244                     AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 100, -50); // mine is on
   244                     AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 100, -50); // mine is on
   264                 AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 150, -75);
   264                 AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 150, -75);
   265                 end;
   265                 end;
   266 
   266 
   267             gtHedgehog:
   267             gtHedgehog:
   268                 begin
   268                 begin
   269                 if (ThinkingHH <> Gear) 
   269                 if (ThinkingHH <> Gear)
   270                     and (((Gear^.State and (gstMoving or gstDrowning or gstHHDeath)) <> 0) 
   270                     and (((Gear^.State and (gstMoving or gstDrowning or gstHHDeath)) <> 0)
   271                         or (Gear^.Health = 0)
   271                         or (Gear^.Health = 0)
   272                         or (Gear^.Damage >= Gear^.Health)) 
   272                         or (Gear^.Damage >= Gear^.Health))
   273                     then begin
   273                     then begin
   274                     bonuses.activity:= true;
   274                     bonuses.activity:= true;
   275                     end;
   275                     end;
   276                 
   276 
   277                 if Gear^.Damage >= Gear^.Health then
   277                 if Gear^.Damage >= Gear^.Health then
   278                     AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 60, -25)
   278                     AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 60, -25)
   279                 else
   279                 else
   280                     if isAfterAttack
   280                     if isAfterAttack
   281                       and (ThinkingHH^.Hedgehog <> Gear^.Hedgehog)
   281                       and (ThinkingHH^.Hedgehog <> Gear^.Hedgehog)