hedgewars/GSHandlers.inc
changeset 2475 e0646a529a38
parent 2470 44b66fbf37da
child 2480 e19419846196
equal deleted inserted replaced
2474:f2f8bdb207d4 2475:e0646a529a38
  1327 		end
  1327 		end
  1328     end else begin
  1328     end else begin
  1329         if (Gear^.State and gsttmpFlag) <> 0 then 
  1329         if (Gear^.State and gsttmpFlag) <> 0 then 
  1330             begin
  1330             begin
  1331             Gear^.Radius:= 9;
  1331             Gear^.Radius:= 9;
  1332             AmmoShove(Gear, 4, 100);
  1332             AmmoShove(Gear, 2, 100);
  1333             Gear^.Radius:= 1
  1333             Gear^.Radius:= 1
  1334             end;
  1334             end;
  1335 	    if Gear^.Timer > 0 then dec(Gear^.Timer)
  1335 	    if Gear^.Timer > 0 then
       
  1336             begin
       
  1337             dec(Gear^.Timer);
       
  1338             inc(Gear^.Damage)
       
  1339             end
  1336         else begin
  1340         else begin
  1337 // Standard fire
  1341 // Standard fire
  1338             if (Gear^.State and gsttmpFlag) = 0 then
  1342             if (Gear^.State and gsttmpFlag) = 0 then
  1339                 begin
  1343                 begin
  1340                 Gear^.Radius:= 9;
  1344                 Gear^.Radius:= 9;
  1344                 if Gear^.Health > 0 then dec(Gear^.Health);
  1348                 if Gear^.Health > 0 then dec(Gear^.Health);
  1345                 Gear^.Timer:= 450 - Gear^.Tag * 8
  1349                 Gear^.Timer:= 450 - Gear^.Tag * 8
  1346                 end
  1350                 end
  1347                 else begin
  1351                 else begin
  1348 // Modified fire
  1352 // Modified fire
  1349                 if ((GameTicks and $1FF) = 0) and ((GameFlags and gfSolidLand) = 0) then
  1353                 if ((GameTicks and $7FF) = 0) and ((GameFlags and gfSolidLand) = 0) then
  1350                     DrawExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 4);
  1354                     DrawExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 4);
  1351                 // This one is interesting.  I think I understand the purpose, but I wonder if a bit more fuzzy of kicking could be done with getrandom.
  1355                 // This one is interesting.  I think I understand the purpose, but I wonder if a bit more fuzzy of kicking could be done with getrandom.
  1352         	    Gear^.Timer:= 100 - Gear^.Tag * 3;
  1356         	    Gear^.Timer:= 100 - Gear^.Tag * 3;
  1353                 if ((GameTicks and $FF) = 0) then Gear^.Health:= 0
  1357                 if (Gear^.Damage > 3000+Gear^.Tag*1500) then Gear^.Health:= 0
  1354                 end
  1358                 end
  1355             end
  1359             end
  1356         end;
  1360         end;
  1357 if Gear^.Health = 0 then
  1361 if Gear^.Health = 0 then
  1358 	DeleteGear(Gear)
  1362 	DeleteGear(Gear)