hedgewars/GSHandlers.inc
changeset 5690 f6e0c5bd8020
parent 5688 fba59d6b5b6c
child 5692 753ae5d0776c
equal deleted inserted replaced
5689:48ef34701751 5690:f6e0c5bd8020
  1711     PlaySound(sndRopeShot)
  1711     PlaySound(sndRopeShot)
  1712 end;
  1712 end;
  1713 
  1713 
  1714 ////////////////////////////////////////////////////////////////////////////////
  1714 ////////////////////////////////////////////////////////////////////////////////
  1715 procedure doStepMine(Gear: PGear);
  1715 procedure doStepMine(Gear: PGear);
       
  1716 var vg: PVisualGear;
  1716 begin
  1717 begin
  1717     if (Gear^.State and gstMoving) <> 0 then
  1718     if (Gear^.State and gstMoving) <> 0 then
  1718     begin
  1719     begin
  1719         DeleteCI(Gear);
  1720         DeleteCI(Gear);
  1720         doStepFallingGear(Gear);
  1721         doStepFallingGear(Gear);
  1740                  inc(Gear^.Damage, hwRound(Gear^.dY * -_70))
  1741                  inc(Gear^.Damage, hwRound(Gear^.dY * -_70))
  1741             else if Gear^.dX.isNegative and (Gear^.dX < -_0_2) and TestCollisionXwithGear(Gear, -1) then
  1742             else if Gear^.dX.isNegative and (Gear^.dX < -_0_2) and TestCollisionXwithGear(Gear, -1) then
  1742                  inc(Gear^.Damage, hwRound(Gear^.dX * -_70));
  1743                  inc(Gear^.Damage, hwRound(Gear^.dX * -_70));
  1743         
  1744         
  1744         if (Gear^.Damage > random(30)) and ((GameTicks and $FF) = 0) then
  1745         if (Gear^.Damage > random(30)) and ((GameTicks and $FF) = 0) then
  1745             AddVisualGear(hwRound(Gear^.X) - 4  + Random(8), hwRound(Gear^.Y) - 4 - Random(4), vgtSmoke);
  1746             begin
       
  1747             vg:= AddVisualGear(hwRound(Gear^.X) - 4  + Random(8), hwRound(Gear^.Y) - 4 - Random(4), vgtSmoke);
       
  1748             if vg <> nil then vg^.Scale:= 0.5
       
  1749             end;
  1746 
  1750 
  1747         if (Gear^.Damage > 35) then
  1751         if (Gear^.Damage > 35) then
  1748             begin
  1752             begin
  1749             doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
  1753             doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
  1750             DeleteGear(Gear);
  1754             DeleteGear(Gear);
  1772                     doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
  1776                     doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
  1773                     DeleteGear(Gear)
  1777                     DeleteGear(Gear)
  1774                     end
  1778                     end
  1775                 else
  1779                 else
  1776                     begin
  1780                     begin
  1777                     AddVisualGear(hwRound(Gear^.X) - 4  + Random(8), hwRound(Gear^.Y) - 4 - Random(4),
  1781                     vg:= AddVisualGear(hwRound(Gear^.X) - 4  + Random(8), hwRound(Gear^.Y) - 4 - Random(4), vgtSmoke);
  1778                     vgtSmoke);
  1782                     if vg <> nil then vg^.Scale:= 0.5;
  1779                     PlaySound(sndVaporize);
  1783                     PlaySound(sndVaporize);
  1780                     Gear^.Health := 0;
  1784                     Gear^.Health := 0;
  1781                     Gear^.Damage := 0;
  1785                     Gear^.Damage := 0;
  1782                     Gear^.State := Gear^.State and not gstAttacking
  1786                     Gear^.State := Gear^.State and not gstAttacking
  1783                     end;
  1787                     end;