hedgewars/GSHandlers.inc
changeset 8632 b5ed76d2a1f9
parent 8628 627e76986a08
child 8634 5dcb1dc9e01b
equal deleted inserted replaced
8631:796ed875aa95 8632:b5ed76d2a1f9
    90                 if (CurrentHedgehog^.Gear = gi) then
    90                 if (CurrentHedgehog^.Gear = gi) then
    91                     PlaySoundV(sndOops, gi^.Hedgehog^.Team^.voicepack)
    91                     PlaySoundV(sndOops, gi^.Hedgehog^.Team^.voicepack)
    92                     
    92                     
    93                 else
    93                 else
    94                     begin
    94                     begin
    95                     if (gi^.State and gstMoving) = 0 then
    95                     if ((gi^.State and gstMoving) = 0) and (gi^.Hedgehog^.Effects[heFrozen] = 0) then
    96                         begin
    96                         begin
    97                         gi^.dX.isNegative:= X<gi^.X;
    97                         gi^.dX.isNegative:= X<gi^.X;
    98                         gi^.State := gi^.State or gstLoser;
    98                         gi^.State := gi^.State or gstLoser;
    99                         end;
    99                         end;
   100                         
   100                         
  4954         DeleteGear(Gear);
  4954         DeleteGear(Gear);
  4955         exit
  4955         exit
  4956         end;
  4956         end;
  4957     Gear^.Pos:= 4;
  4957     Gear^.Pos:= 4;
  4958     // This condition might need tweaking
  4958     // This condition might need tweaking
  4959     Gear^.Timer:= GetRandom(cHedgehogTurnTime*TeamsCount*2)+cHedgehogTurnTime*2
  4959     Gear^.Timer:= GetRandom(cHedgehogTurnTime*TeamsCount)+cHedgehogTurnTime
  4960     end;
  4960     end;
  4961 
  4961 
  4962 if (Gear^.Pos = 4) then
  4962 if (Gear^.Pos = 4) then
  4963     begin
  4963     begin
  4964     cnt:= 0;
  4964     cnt:= 0;
  4990             Gear^.SoundChannel := LoopSound(sndTardis);
  4990             Gear^.SoundChannel := LoopSound(sndTardis);
  4991             Gear^.Pos:= 1;
  4991             Gear^.Pos:= 1;
  4992             Gear^.Power:= 0;
  4992             Gear^.Power:= 0;
  4993             end
  4993             end
  4994         end
  4994         end
  4995     else dec(Gear^.Timer);
  4995     else if (CurrentHedgehog^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan) then dec(Gear^.Timer)
  4996     end;
  4996     end;
  4997 
  4997 
  4998 end;
  4998 end;
  4999 
  4999 
  5000 procedure doStepTardis(Gear: PGear);
  5000 procedure doStepTardis(Gear: PGear);
  5122         begin
  5122         begin
  5123         DeleteGear(Gear);
  5123         DeleteGear(Gear);
  5124         AfterAttack;
  5124         AfterAttack;
  5125         exit
  5125         exit
  5126         end
  5126         end
  5127     else
  5127     else if Gear^.Message and (gmUp or gmDown) = 0 then updateFuel(Gear);
  5128         begin
       
  5129         updateFuel(Gear);
       
  5130         end;
       
  5131 
  5128 
  5132     with Gear^ do
  5129     with Gear^ do
  5133         begin
  5130         begin
  5134         HedgehogChAngle(HHGear);
  5131         HedgehogChAngle(HHGear);
  5135         ndX:= SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _4;
  5132         ndX:= SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _4;
  5201                                 begin
  5198                                 begin
  5202                                 hogs.ar^[i]^.Active:= true;
  5199                                 hogs.ar^[i]^.Active:= true;
  5203                                 if hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] < 256 then
  5200                                 if hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] < 256 then
  5204                                     hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] := hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] + 1
  5201                                     hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] := hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] + 1
  5205                                 else if hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] = 256 then
  5202                                 else if hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] = 256 then
  5206                                     hogs.ar^[i]^.Hedgehog^.Effects[heFrozen]:= 100000
  5203                                     hogs.ar^[i]^.Hedgehog^.Effects[heFrozen]:= cHedgehogTurnTime + cReadyDelay
  5207                                 end;
  5204                                 end;
  5208                 inc(Pos)
  5205                 inc(Pos)
  5209             end
  5206             end
  5210             else if (t > 400) and ((gY > cWaterLine) or
  5207             else if (t > 400) and ((gY > cWaterLine) or
  5211                     (((gX and LAND_WIDTH_MASK = 0) and (gY and LAND_HEIGHT_MASK = 0))
  5208                     (((gX and LAND_WIDTH_MASK = 0) and (gY and LAND_HEIGHT_MASK = 0))