hedgewars/GSHandlers.inc
changeset 3712 de2026031833
parent 3710 411f5c2b5292
child 3713 f8778904600d
equal deleted inserted replaced
3711:de3b3df215c3 3712:de2026031833
   399                     if i mod 2 = 0 then Fire^.State := Fire^.State or gsttmpFlag;
   399                     if i mod 2 = 0 then Fire^.State := Fire^.State or gsttmpFlag;
   400                     Fire := AddGear(x, y, gtFlame, 0, dX, -dY, 0);
   400                     Fire := AddGear(x, y, gtFlame, 0, dX, -dY, 0);
   401                     if i mod 2 <> 0 then Fire^.State := Fire^.State or gsttmpFlag;
   401                     if i mod 2 <> 0 then Fire^.State := Fire^.State or gsttmpFlag;
   402                     end
   402                     end
   403                 end;
   403                 end;
   404             gtGasBomb: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, EXPLAutoSound or EXPLPoisoned);
   404             gtGasBomb:
       
   405                 begin
       
   406                 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, EXPLAutoSound);
       
   407                 for i:= 0 to 2 do
       
   408                     AddGear(hwRound(Gear^.X) - 30 + GetRandom(60), hwRound(Gear^.Y) - 20 + GetRandom(40), gtPoisonCloud, 0, _0, _0, 0);
       
   409                 end;
   405         end;
   410         end;
   406     DeleteGear(Gear);
   411     DeleteGear(Gear);
   407     exit
   412     exit
   408 end;
   413 end;
   409 
   414 
  3862     HHGear^.Message := HHGear^.Message and not (gm_Up or gm_Down or gm_Left or gm_Right);
  3867     HHGear^.Message := HHGear^.Message and not (gm_Up or gm_Down or gm_Left or gm_Right);
  3863     HHGear^.State := HHGear^.State or gstNotKickable;
  3868     HHGear^.State := HHGear^.State or gstNotKickable;
  3864     Gear^.doStep := @doStepFlamethrowerWork
  3869     Gear^.doStep := @doStepFlamethrowerWork
  3865 end;
  3870 end;
  3866 
  3871 
  3867 
  3872 procedure doStepPoisonCloud(Gear: PGear);
       
  3873 begin
       
  3874     if Gear^.Timer = 0 then
       
  3875     begin
       
  3876         DeleteGear(Gear);
       
  3877         exit
       
  3878     end;
       
  3879     dec(Gear^.Timer);
       
  3880     Gear^.X:= Gear^.X + Gear^.dX;
       
  3881     Gear^.Y:= Gear^.Y + Gear^.dY;
       
  3882     Gear^.dX := Gear^.dX + cWindSpeed / 2;
       
  3883     Gear^.dY := Gear^.dY + cGravity / 100;
       
  3884     if (GameTicks mod 250) = 0 then
       
  3885         doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLDontDraw or EXPLNoGfx or EXPLNoDamage or EXPLDoNotTouchAny or EXPLPoisoned);
       
  3886     AllInactive:= false;
       
  3887 end;