hedgewars/uAIMisc.pas
changeset 74 42257fee61ae
parent 71 5f56c6979496
child 75 d2b737858ff7
equal deleted inserted replaced
73:fe1c62875a19 74:42257fee61ae
    88              begin
    88              begin
    89              with Targets.ar[Targets.Count], t.Hedgehogs[i] do
    89              with Targets.ar[Targets.Count], t.Hedgehogs[i] do
    90                   begin
    90                   begin
    91                   Point.X:= Round(Gear.X);
    91                   Point.X:= Round(Gear.X);
    92                   Point.Y:= Round(Gear.Y);
    92                   Point.Y:= Round(Gear.Y);
    93                   if t <> CurrentTeam then Score:=  Gear.Health
    93                   if t.Color <> CurrentTeam.Color then Score:=  Gear.Health
    94                                       else Score:= -Gear.Health
    94                                                   else Score:= -Gear.Health
    95                   end;
    95                   end;
    96              inc(Targets.Count)
    96              inc(Targets.Count)
    97              end;
    97              end;
    98       t:= t.Next
    98       t:= t.Next
    99       end
    99       end
   119 Gear:= GearsList;
   119 Gear:= GearsList;
   120 while Gear <> nil do
   120 while Gear <> nil do
   121       begin
   121       begin
   122       case Gear.Kind of
   122       case Gear.Kind of
   123            gtCase: AddBonus(round(Gear.X), round(Gear.Y), 33, 25);
   123            gtCase: AddBonus(round(Gear.X), round(Gear.Y), 33, 25);
   124            gtMine: AddBonus(round(Gear.X), round(Gear.Y), 46, -50);
   124            gtMine: if (Gear.State and gstAttacking) = 0 then AddBonus(round(Gear.X), round(Gear.Y), 50, -50)
       
   125                                                         else AddBonus(round(Gear.X), round(Gear.Y), 100, -50); // mine is on
   125            gtDynamite: AddBonus(round(Gear.X), round(Gear.Y), 150, -75);
   126            gtDynamite: AddBonus(round(Gear.X), round(Gear.Y), 150, -75);
   126            gtHedgehog: begin
   127            gtHedgehog: begin
   127                        if Gear.Damage >= Gear.Health then AddBonus(round(Gear.X), round(Gear.Y), 50, -25);
   128                        if Gear.Damage >= Gear.Health then AddBonus(round(Gear.X), round(Gear.Y), 60, -25) else
   128                        if isAfterAttack
   129                           if isAfterAttack and (ThinkingHH.Hedgehog <> Gear.Hedgehog) then
   129                           and (ThinkingHH.Hedgehog <> Gear.Hedgehog)
   130                              if (MyColor = PHedgehog(Gear.Hedgehog).Team.Color) then AddBonus(round(Gear.X), round(Gear.Y), 150, -3) // hedgehog-friend
   130                           and (MyColor = PHedgehog(Gear.Hedgehog).Team.Color) then AddBonus(round(Gear.X), round(Gear.Y), 100, -1);
   131                                                                                 else AddBonus(round(Gear.X), round(Gear.Y), 100, 3)
   131                        end;
   132                        end;
   132            end;
   133            end;
   133       Gear:= Gear.NextGear
   134       Gear:= Gear.NextGear
   134       end;
   135       end;
   135 if isAfterAttack and (KnownExplosion.Radius > 0) then
   136 if isAfterAttack and (KnownExplosion.Radius > 0) then
   136    with KnownExplosion do
   137    with KnownExplosion do
   137         begin
   138         AddBonus(X, Y, Radius + 10, -Radius);
   138         AddBonus(X, Y, Radius, -Radius);
       
   139         Radius:= 0
       
   140         end
       
   141 end;
   139 end;
   142 
   140 
   143 procedure AwareOfExplosion(x, y, r: integer);
   141 procedure AwareOfExplosion(x, y, r: integer);
   144 begin
   142 begin
   145 KnownExplosion.X:= x;
   143 KnownExplosion.X:= x;