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; |