hedgewars/GSHandlers.inc
changeset 285 cdab49768c83
parent 283 28d105f378f1
child 300 be94799f33d2
equal deleted inserted replaced
284:22ce72bd637f 285:cdab49768c83
   923 
   923 
   924 HHGear.Y:= HHGear.Y + cGravity * 100;
   924 HHGear.Y:= HHGear.Y + cGravity * 100;
   925 end;
   925 end;
   926 
   926 
   927 ////////////////////////////////////////////////////////////////////////////////
   927 ////////////////////////////////////////////////////////////////////////////////
   928 const cAirPlaneSpeed = 1.1;
   928 const cAirPlaneSpeed = 1.4;
   929       cBombsDistance = 30;
   929       cBombsDistance = 30;
   930       cBombsSpeed = 0.1;
   930       cBombsSpeed = 0.1;
   931 
   931 
   932 procedure doStepAirAttackWork(Gear: PGear);
   932 procedure doStepAirAttackWork(Gear: PGear);
   933 begin
   933 begin
   934 AllInactive:= false;
   934 AllInactive:= false;
   935 Gear.X:= Gear.X + cAirPlaneSpeed;
   935 Gear.X:= Gear.X + cAirPlaneSpeed;
   936 if (Gear.Health > 0)and(Gear.X >= Gear.dX)and(Gear.X < Gear.dX + cAirPlaneSpeed) then
   936 if (Gear.Health > 0)and(Gear.X >= Gear.dX)and(Gear.X < Gear.dX + cAirPlaneSpeed) then
   937    begin
   937    begin
   938    dec(Gear.Health);
   938    dec(Gear.Health);
   939    AddGear(round(Gear.X), round(Gear.Y), gtAirBomb, 0, cBombsSpeed, 0.0);
   939    case Gear.State of
       
   940         0: AddGear(round(Gear.X), round(Gear.Y), gtAirBomb, 0, cBombsSpeed, 0.0);
       
   941         1: AddGear(round(Gear.X), round(Gear.Y), gtMine, 0, cBombsSpeed, 0.0);
       
   942         end;
   940    Gear.dX:= Gear.dX + cBombsDistance
   943    Gear.dX:= Gear.dX + cBombsDistance
   941    end;
   944    end;
   942 if Gear.X > 3072 then DeleteGear(Gear)
   945 if Gear.X > 3072 then DeleteGear(Gear)
   943 end;
   946 end;
   944 
   947 
   960 begin
   963 begin
   961 AllInactive:= false;
   964 AllInactive:= false;
   962 doStepFallingGear(Gear);
   965 doStepFallingGear(Gear);
   963 if (Gear.State and gstCollision) <> 0 then
   966 if (Gear.State and gstCollision) <> 0 then
   964    begin
   967    begin
   965    doMakeExplosion(round(Gear.X), round(Gear.Y), 35, EXPLAutoSound);
   968    doMakeExplosion(round(Gear.X), round(Gear.Y), 30, EXPLAutoSound);
   966    DeleteGear(Gear);
   969    DeleteGear(Gear);
   967    exit
   970    exit
   968    end;
   971    end;
   969 if (GameTicks and $3F) = 0 then
   972 if (GameTicks and $3F) = 0 then
   970    AddGear(round(Gear.X), round(Gear.Y), gtSmokeTrace, 0)
   973    AddGear(round(Gear.X), round(Gear.Y), gtSmokeTrace, 0)