hedgewars/GSHandlers.inc
changeset 82 2f4f3236cccc
parent 81 d74e0e914b50
child 83 207c85fbef51
equal deleted inserted replaced
81:d74e0e914b50 82:2f4f3236cccc
   801    end;
   801    end;
   802 
   802 
   803 if (((GameTicks div 8) mod 64) = Gear.Angle) then
   803 if (((GameTicks div 8) mod 64) = Gear.Angle) then
   804    AmmoFlameWork(Gear);
   804    AmmoFlameWork(Gear);
   805 
   805 
   806 if Gear.Health = 0 then 
   806 if Gear.Health = 0 then
   807    DeleteGear(Gear)
   807    DeleteGear(Gear)
   808 end;
   808 end;
       
   809 
       
   810 ////////////////////////////////////////////////////////////////////////////////
       
   811 procedure doStepFirePunchWork(Gear: PGear);
       
   812 var HHGear: PGear;
       
   813 begin
       
   814 AllInactive:= false;
       
   815 if ((Gear.Message and gm_Destroy) <> 0) then
       
   816    begin
       
   817    DeleteGear(Gear);
       
   818    AfterAttack;
       
   819    exit
       
   820    end;
       
   821 
       
   822 HHGear:= PHedgehog(Gear.Hedgehog).Gear;
       
   823 if round(HHGear.Y) <= Gear.Tag - 2 then
       
   824    begin
       
   825    Gear.Tag:= round(HHGear.Y);
       
   826    DrawTunnel(HHGear.X - cHHRadius, HHGear.Y - 1, 0.5, 0.0, cHHRadius * 4, 2);
       
   827    HHGear.State:= HHGear.State or gstNoDamage;
       
   828    Gear.Y:= HHGear.Y;
       
   829    AmmoShove(Gear, 30, 40);
       
   830    HHGear.State:= HHGear.State and not gstNoDamage
       
   831    end;
       
   832    
       
   833 HHGear.dY:= HHGear.dY + cGravity;
       
   834 if HHGear.dY >= 0 then
       
   835    begin
       
   836    HHGear.State:= HHGear.State or gstFalling;
       
   837    DeleteGear(Gear);
       
   838    AfterAttack;
       
   839    exit
       
   840    end;
       
   841 HHGear.Y:= HHGear.Y + HHGear.dY
       
   842 end;
       
   843 
       
   844 procedure doStepFirePunch(Gear: PGear);
       
   845 var HHGear: PGear;
       
   846 begin
       
   847 AllInactive:= false;
       
   848 HHGear:= PHedgehog(Gear.Hedgehog).Gear;
       
   849 HHGear.X:= round(HHGear.X) - 0.5;
       
   850 HHGear.dX:= 0.0000001 * Sign(HHGear.dX);
       
   851 HHGear.dY:= -0.30;
       
   852 
       
   853 Gear.X:= HHGear.X;
       
   854 Gear.dX:= Sign(HHGear.dX)* 0.45;
       
   855 Gear.dY:= -0.9;
       
   856 Gear.doStep:= doStepFirePunchWork;
       
   857 DrawTunnel(HHGear.X - cHHRadius, HHGear.Y + 1, 0.5, 0.0, cHHRadius * 4, 5);
       
   858 end;
       
   859 
       
   860