hedgewars/uGearsHandlersMess.pas
changeset 11540 1ae92bbb5a6d
parent 11531 d1cf1ff6cabb
child 11550 881231c1ba46
equal deleted inserted replaced
11539:c22d292e7266 11540:1ae92bbb5a6d
  2644 procedure doStepAirAttackWork(Gear: PGear);
  2644 procedure doStepAirAttackWork(Gear: PGear);
  2645 begin
  2645 begin
  2646     AllInactive := false;
  2646     AllInactive := false;
  2647     Gear^.X := Gear^.X + cAirPlaneSpeed * Gear^.Tag;
  2647     Gear^.X := Gear^.X + cAirPlaneSpeed * Gear^.Tag;
  2648 
  2648 
  2649     if (Gear^.Health > 0)and(not (Gear^.X < Gear^.dX))and(Gear^.X < Gear^.dX + cAirPlaneSpeed) then
  2649     if (Gear^.Health > 0) and (not (Gear^.X < Gear^.dX)) and (Gear^.X < Gear^.dX + cAirPlaneSpeed) then
  2650         begin
  2650         begin
  2651         dec(Gear^.Health);
  2651         dec(Gear^.Health);
  2652             case Gear^.State of
  2652             case Gear^.State of
  2653                 0: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, cBombsSpeed * Gear^.Tag, _0, 0);
  2653                 0: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, cBombsSpeed * Gear^.Tag, _0, 0);
  2654                 1: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine,    0, cBombsSpeed * Gear^.Tag, _0, 0);
  2654                 1: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine,    0, cBombsSpeed * Gear^.Tag, _0, 0);
  2688         Gear^.Tag := -1;
  2688         Gear^.Tag := -1;
  2689         Gear^.X := int2hwFloat(max(LAND_WIDTH,4096) + 2048);
  2689         Gear^.X := int2hwFloat(max(LAND_WIDTH,4096) + 2048);
  2690         end;
  2690         end;
  2691 
  2691 
  2692     Gear^.Y := int2hwFloat(topY-300);
  2692     Gear^.Y := int2hwFloat(topY-300);
  2693     Gear^.dX := int2hwFloat(Gear^.Target.X) - int2hwFloat(Gear^.Tag * Gear^.Health * Gear^.Damage) / 2;
  2693     Gear^.dX := int2hwFloat(Gear^.Target.X) - int2hwFloat(Gear^.Tag * (Gear^.Health-1) * Gear^.Damage) / 2;
  2694 
  2694 
  2695     // calcs for Napalm Strike, so that it will hit the target (without wind at least :P)
  2695     // calcs for Napalm Strike, so that it will hit the target (without wind at least :P)
  2696     if (Gear^.State = 2) then
  2696     if (Gear^.State = 2) then
  2697         Gear^.dX := Gear^.dX - cBombsSpeed * Gear^.Tag * 900
  2697         Gear^.dX := Gear^.dX - cBombsSpeed * Gear^.Tag * 900
  2698     // calcs for regular falling gears
  2698     // calcs for regular falling gears