hedgewars/GSHandlers.inc
changeset 37 2b7f2a43b999
parent 23 16322d14f068
child 38 c1ec4b15d70e
equal deleted inserted replaced
36:a803a00a3272 37:2b7f2a43b999
   263 if (Gear.X < 0) or (Gear.Y < 0) or (Gear.X > 2048) or (Gear.Y > 1024) then
   263 if (Gear.X < 0) or (Gear.Y < 0) or (Gear.X > 2048) or (Gear.Y > 1024) then
   264    DeleteGear(Gear)
   264    DeleteGear(Gear)
   265 end;
   265 end;
   266 
   266 
   267 ////////////////////////////////////////////////////////////////////////////////
   267 ////////////////////////////////////////////////////////////////////////////////
       
   268 procedure doStepDEagleShot(Gear: PGear);    // сама идея такова, что должна как то образовываться выбоина от выстрела :)
       
   269 var i: LongWord;                            // пуля и в африке пуля.. и демаж совсем другой.. и эксплоза никакого, можно даже
       
   270 begin                                       // навылет сделать, типа через одного пролетела и в другого попала... опять же
       
   271 AllInactive:= false;                        // дальше летишь меньше урон.. ой скока сразу мыслей то :))
       
   272 i:= 80;
       
   273 repeat
       
   274 Gear.X:= Gear.X + Gear.dX;
       
   275 Gear.Y:= Gear.Y + Gear.dY;
       
   276 CheckCollision(Gear);
       
   277 if (Gear.State and gstCollision) <> 0 then
       
   278    begin
       
   279    inc(Gear.Damage);
       
   280    doMakeExplosion(round(Gear.X), round(Gear.Y), 2, EXPLAllDamageInRadius);
       
   281    end;
       
   282 dec(i)
       
   283 until i = 0;
       
   284 if (Gear.Damage > 20) or (Gear.X < 0) or (Gear.Y < 0) or (Gear.X > 2048) or (Gear.Y > 1024) then
       
   285    DeleteGear(Gear)
       
   286 end;
       
   287 
       
   288 ////////////////////////////////////////////////////////////////////////////////
   268 procedure doStepActionTimer(Gear: PGear);
   289 procedure doStepActionTimer(Gear: PGear);
   269 begin
   290 begin
   270 case Gear.State of
   291 case Gear.State of
   271      gtsStartGame: begin
   292      gtsStartGame: begin
   272                    dec(Gear.Timer);
   293                    dec(Gear.Timer);
   591          if CheckGearNear(Gear, gtHedgehog, 46, 32) <> nil then Gear.State:= Gear.State or gstAttacking
   612          if CheckGearNear(Gear, gtHedgehog, 46, 32) <> nil then Gear.State:= Gear.State or gstAttacking
   592          end else dec(Gear.Tag)
   613          end else dec(Gear.Tag)
   593       end else // gstAttacking <> 0
   614       end else // gstAttacking <> 0
   594       begin
   615       begin
   595       AllInactive:= false;
   616       AllInactive:= false;
   596       if (Gear.Timer and $1FF) = 0 then PlaySound(sndMineTick);
   617       if (Gear.Timer and $FF) = 0 then PlaySound(sndMineTick);
   597       if Gear.Timer = 0 then
   618       if Gear.Timer = 0 then
   598          begin
   619          begin
   599          doMakeExplosion(round(Gear.X), round(Gear.Y), 50, EXPLAutoSound);
   620          doMakeExplosion(round(Gear.X), round(Gear.Y), 50, EXPLAutoSound);
   600          SetAllToActive;
   621          SetAllToActive;
   601          DeleteGear(Gear)
   622          DeleteGear(Gear)