hedgewars/uGearsHandlersMess.pas
changeset 12712 31f7e0a31736
parent 12700 16fcd59295e3
child 12714 5a57acce9cae
equal deleted inserted replaced
12711:20dbb3a03e61 12712:31f7e0a31736
  5852     end;
  5852     end;
  5853 
  5853 
  5854 end;
  5854 end;
  5855 
  5855 
  5856 procedure doStepTardis(Gear: PGear);
  5856 procedure doStepTardis(Gear: PGear);
  5857 var i,j,cnt: LongWord;
  5857 var HH: PHedgehog;
  5858     HH: PHedgehog;
  5858 begin
  5859 begin
       
  5860 (*
       
  5861     Conditions for not activating.
       
  5862     1. Hog is last of his clan
       
  5863     2. Sudden Death is in play
       
  5864     3. Hog is a king
       
  5865 *)
       
  5866     HH:= Gear^.Hedgehog;
  5859     HH:= Gear^.Hedgehog;
  5867     if HH^.Gear <> nil then
  5860     if (not CanUseTardis(HH^.Gear)) then
  5868     if (HH^.Gear = nil) or (HH^.King) or (SuddenDeathDmg) then
  5861     begin
  5869         begin
  5862         HH^.Gear^.Message := HH^.Gear^.Message and (not gmAttack);
  5870         if HH^.Gear <> nil then
  5863         HH^.Gear^.State:= HH^.Gear^.State and (not gstAttacking);
  5871             begin
       
  5872             HH^.Gear^.Message := HH^.Gear^.Message and (not gmAttack);
       
  5873             HH^.Gear^.State:= HH^.Gear^.State and (not gstAttacking);
       
  5874             end;
       
  5875         PlaySound(sndDenied);
  5864         PlaySound(sndDenied);
  5876         DeleteGear(gear);
  5865         DeleteGear(Gear);
  5877         exit
  5866         exit
  5878         end;
  5867     end;
  5879     cnt:= 0;
       
  5880     for j:= 0 to Pred(HH^.Team^.Clan^.TeamsNumber) do
       
  5881         for i:= 0 to Pred(HH^.Team^.Clan^.Teams[j]^.HedgehogsNumber) do
       
  5882             if (HH^.Team^.Clan^.Teams[j]^.Hedgehogs[i].Gear <> nil)
       
  5883             and ((HH^.Team^.Clan^.Teams[j]^.Hedgehogs[i].Gear^.State and gstDrowning) = 0)
       
  5884             and (HH^.Team^.Clan^.Teams[j]^.Hedgehogs[i].Gear^.Health > HH^.Team^.Clan^.Teams[j]^.Hedgehogs[i].Gear^.Damage) then
       
  5885                 inc(cnt);
       
  5886     if cnt < 2 then
       
  5887         begin
       
  5888         if HH^.Gear <> nil then
       
  5889             begin
       
  5890             HH^.Gear^.Message := HH^.Gear^.Message and (not gmAttack);
       
  5891             HH^.Gear^.State:= HH^.Gear^.State and (not gstAttacking);
       
  5892             end;
       
  5893             PlaySound(sndDenied);
       
  5894             DeleteGear(gear);
       
  5895             exit
       
  5896         end;
       
  5897     Gear^.SoundChannel := LoopSound(sndTardis);
  5868     Gear^.SoundChannel := LoopSound(sndTardis);
  5898     Gear^.doStep:= @doStepTardisWarp
  5869     Gear^.doStep:= @doStepTardisWarp
  5899 end;
  5870 end;
  5900 
  5871 
  5901 ////////////////////////////////////////////////////////////////////////////////
  5872 ////////////////////////////////////////////////////////////////////////////////