hedgewars/GSHandlers.inc
changeset 4319 81391b54b078
parent 4317 ba5d5a2f4c4b
child 4325 ca254d2a46ac
equal deleted inserted replaced
4317:ba5d5a2f4c4b 4319:81391b54b078
  2074     doStepParachuteWork(Gear)
  2074     doStepParachuteWork(Gear)
  2075 end;
  2075 end;
  2076 
  2076 
  2077 ////////////////////////////////////////////////////////////////////////////////
  2077 ////////////////////////////////////////////////////////////////////////////////
  2078 procedure doStepAirAttackWork(Gear: PGear);
  2078 procedure doStepAirAttackWork(Gear: PGear);
  2079 //var 
       
  2080 //    i: Longint;
       
  2081 begin
  2079 begin
  2082     AllInactive := false;
  2080     AllInactive := false;
  2083     Gear^.X := Gear^.X + cAirPlaneSpeed * Gear^.Tag;
  2081     Gear^.X := Gear^.X + cAirPlaneSpeed * Gear^.Tag;
  2084 
  2082 
  2085     if (Gear^.Health > 0)and(not (Gear^.X < Gear^.dX))and(Gear^.X < Gear^.dX + cAirPlaneSpeed) then
  2083     if (Gear^.Health > 0)and(not (Gear^.X < Gear^.dX))and(Gear^.X < Gear^.dX + cAirPlaneSpeed) then
  2090                              Gear^.Tag, _0, 0);
  2088                              Gear^.Tag, _0, 0);
  2091             1: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine,    0, cBombsSpeed *
  2089             1: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine,    0, cBombsSpeed *
  2092                              Gear^.Tag, _0, 0);
  2090                              Gear^.Tag, _0, 0);
  2093             2: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtNapalmBomb, 0, cBombsSpeed *
  2091             2: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtNapalmBomb, 0, cBombsSpeed *
  2094                              Gear^.Tag, _0, 0);
  2092                              Gear^.Tag, _0, 0);
  2095             //2: for i:= -19 to 19 do
       
  2096             //       FollowGear := AddGear(hwRound(Gear^.X) + i div 3, hwRound(Gear^.Y), gtFlame, 0,
       
  2097             //                     _0_001 * i, _0, 0);
       
  2098             3: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtDrill, gsttmpFlag, cBombsSpeed *
  2093             3: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtDrill, gsttmpFlag, cBombsSpeed *
  2099                              Gear^.Tag, _0, 0);
  2094                              Gear^.Tag, _0, 0);
  2100             //4: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtWaterMelon, 0, cBombsSpeed *
  2095             //4: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtWaterMelon, 0, cBombsSpeed *
  2101             //                 Gear^.Tag, _0, 5000);
  2096             //                 Gear^.Tag, _0, 5000);
  2102         end;
  2097         end;
  2125     end;
  2120     end;
  2126 
  2121 
  2127     Gear^.Y := int2hwFloat(topY-300);
  2122     Gear^.Y := int2hwFloat(topY-300);
  2128     Gear^.dX := int2hwFloat(TargetPoint.X - 5 * Gear^.Tag * 15);
  2123     Gear^.dX := int2hwFloat(TargetPoint.X - 5 * Gear^.Tag * 15);
  2129 
  2124 
  2130     if (int2hwFloat(TargetPoint.Y) - Gear^.Y > _0) then //and (Gear^.State <> 2) then
  2125     if (int2hwFloat(TargetPoint.Y) - Gear^.Y > _0) then
  2131         Gear^.dX := Gear^.dX - cBombsSpeed * hwSqrt((int2hwFloat(TargetPoint.Y) - Gear^.Y) * 2 /
  2126         Gear^.dX := Gear^.dX - cBombsSpeed * hwSqrt((int2hwFloat(TargetPoint.Y) - Gear^.Y) * 2 /
  2132                     cGravity) * Gear^.Tag;
  2127                     cGravity) * Gear^.Tag;
  2133 
  2128 
  2134     Gear^.Health := 6;
  2129     Gear^.Health := 6;
  2135     Gear^.doStep := @doStepAirAttackWork;
  2130     Gear^.doStep := @doStepAirAttackWork;