hedgewars/uGearsHedgehog.pas
changeset 8992 5b0be812dcdb
parent 8987 47cf32305d99
child 9041 aefe46d64dd9
equal deleted inserted replaced
8991:82e3a6e5d51b 8992:5b0be812dcdb
   257             and ((Gear^.Message and gmLJump) <> 0)
   257             and ((Gear^.Message and gmLJump) <> 0)
   258             and ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_AltUse) <> 0) then
   258             and ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_AltUse) <> 0) then
   259                 begin
   259                 begin
   260                 if (CurAmmoGear^.AmmoType = amJetpack) and (Gear^.Message and gmPrecise <> 0) then
   260                 if (CurAmmoGear^.AmmoType = amJetpack) and (Gear^.Message and gmPrecise <> 0) then
   261                     begin
   261                     begin
   262                     if hwRound(Gear^.Y) > cWaterLine then
   262                     newDx:= xx*cMaxPower/cPowerDivisor;
   263                         begin
   263                     newDy:= yy*cMaxPower/cPowerDivisor
   264                         newDx:= xx*cMaxPower/cPowerDivisor/2;
       
   265                         newDy:= yy*cMaxPower/cPowerDivisor/2
       
   266                         end
       
   267                     else
       
   268                         begin
       
   269                         newDx:= xx*cMaxPower/cPowerDivisor;
       
   270                         newDy:= yy*cMaxPower/cPowerDivisor
       
   271                         end
       
   272                     end
   264                     end
   273                 else
   265                 else
   274                     begin
   266                     begin
   275                     newDx:= dX;
   267                     newDx:= dX;
   276                     newDy:= dY
   268                     newDy:= dY
   407                newGear^.dX:= newDx / newGear^.Density;
   399                newGear^.dX:= newDx / newGear^.Density;
   408                newGear^.dY:= newDY / newGear^.Density
   400                newGear^.dY:= newDY / newGear^.Density
   409                end;
   401                end;
   410             if (CurAmmoGear <> nil) and (CurAmmoGear^.AmmoType = amJetpack) and
   402             if (CurAmmoGear <> nil) and (CurAmmoGear^.AmmoType = amJetpack) and
   411                (Gear^.Message and gmPrecise <> 0) and (hwRound(Y) > cWaterLine) then
   403                (Gear^.Message and gmPrecise <> 0) and (hwRound(Y) > cWaterLine) then
   412                 newGear^.State:= newGear^.State or gstNoDrown;
   404                 newGear^.State:= newGear^.State or gstSubmersible;
   413 
   405 
   414             case CurAmmoType of
   406             case CurAmmoType of
   415                      amGrenade, amMolotov,
   407                      amGrenade, amMolotov,
   416                  amClusterBomb, amGasBomb,
   408                  amClusterBomb, amGasBomb,
   417                      amBazooka, amSnowball,
   409                      amBazooka, amSnowball,
   532             OnUsedAmmo(CurrentHedgehog^);
   524             OnUsedAmmo(CurrentHedgehog^);
   533             if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) and (((GameFlags and gfInfAttack) = 0) or PlacingHogs) then
   525             if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) and (((GameFlags and gfInfAttack) = 0) or PlacingHogs) then
   534                 begin
   526                 begin
   535                 if TagTurnTimeLeft = 0 then
   527                 if TagTurnTimeLeft = 0 then
   536                     TagTurnTimeLeft:= TurnTimeLeft;
   528                     TagTurnTimeLeft:= TurnTimeLeft;
   537                 TurnTimeLeft:=(Ammoz[a].TimeAfterTurn * cGetAwayTime) div 100;
   529                 if (CurAmmoGear <> nil) and (CurAmmoGear^.State and gstSubmersible <> 0) and (hwRound(CurAmmoGear^.Y) > cWaterLine) then
       
   530                      TurnTimeLeft:=(Ammoz[a].TimeAfterTurn * cGetAwayTime) div 25
       
   531                 else TurnTimeLeft:=(Ammoz[a].TimeAfterTurn * cGetAwayTime) div 100;
   538                 end;
   532                 end;
   539             if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) and (HHGear <> nil) then
   533             if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) and (HHGear <> nil) then
   540                 HHGear^.State:= HHGear^.State or gstAttacked;
   534                 HHGear^.State:= HHGear^.State or gstAttacked;
   541             if (Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) <> 0 then
   535             if (Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) <> 0 then
   542                 ApplyAmmoChanges(CurrentHedgehog^)
   536                 ApplyAmmoChanges(CurrentHedgehog^)