hedgewars/uTeams.pas
changeset 10345 2b264d67fac3
parent 10344 cceabf9628bb
child 10349 a51de45dcc42
equal deleted inserted replaced
10344:cceabf9628bb 10345:2b264d67fac3
   514 end;
   514 end;
   515 
   515 
   516 procedure TeamGoneEffect(var Team: TTeam);
   516 procedure TeamGoneEffect(var Team: TTeam);
   517 var i: LongInt;
   517 var i: LongInt;
   518 begin
   518 begin
   519 with Team do
   519     with Team do
   520     for i:= 0 to cMaxHHIndex do
   520         if skippedTurns < 3 then
   521         with Hedgehogs[i] do
       
   522             begin
   521             begin
   523             if Hedgehogs[i].GearHidden <> nil then
   522                 inc(skippedTurns);
   524                 RestoreHog(@Hedgehogs[i]);
   523                 ParseCommand('/skip', true);
   525 
       
   526             if Gear <> nil then
       
   527                 begin
       
   528                 Gear^.Hedgehog^.Effects[heInvulnerable]:= 0;
       
   529                 Gear^.Damage:= Gear^.Health;
       
   530                 Gear^.State:= (Gear^.State or gstHHGone) and (not gstHHDriven)
       
   531                 end
       
   532             end
   524             end
       
   525         else
       
   526             for i:= 0 to cMaxHHIndex do
       
   527                 with Hedgehogs[i] do
       
   528                     begin
       
   529                     if Hedgehogs[i].GearHidden <> nil then
       
   530                         RestoreHog(@Hedgehogs[i]);
       
   531 
       
   532                     if Gear <> nil then
       
   533                         begin
       
   534                         Gear^.Hedgehog^.Effects[heInvulnerable]:= 0;
       
   535                         Gear^.Damage:= Gear^.Health;
       
   536                         Gear^.State:= (Gear^.State or gstHHGone) and (not gstHHDriven)
       
   537                         end
       
   538                     end
   533 end;
   539 end;
   534 
   540 
   535 procedure chAddHH(var id: shortstring);
   541 procedure chAddHH(var id: shortstring);
   536 var s: shortstring;
   542 var s: shortstring;
   537     Gear: PGear;
   543     Gear: PGear;
   652             if (not hasGone) and isGoneFlagPengingToBeSet then
   658             if (not hasGone) and isGoneFlagPengingToBeSet then
   653                 begin
   659                 begin
   654                 AddChatString('** '+ TeamName + ' is gone'); // TODO: localize
   660                 AddChatString('** '+ TeamName + ' is gone'); // TODO: localize
   655                 if not CurrentTeam^.ExtDriven then SendIPC(_S'f' + s);
   661                 if not CurrentTeam^.ExtDriven then SendIPC(_S'f' + s);
   656                 hasGone:= true;
   662                 hasGone:= true;
       
   663                 skippedTurns:= 0;
   657                 isGoneFlagPengingToBeSet:= false;
   664                 isGoneFlagPengingToBeSet:= false;
   658                 RecountTeamHealth(TeamsArray[i])
   665                 RecountTeamHealth(TeamsArray[i])
   659                 end;
   666                 end;
   660             if hasGone and isGoneFlagPengingToBeUnset then
   667             if hasGone and isGoneFlagPengingToBeUnset then
   661                 ParseCommand('/teamback s' + s, true);
   668                 ParseCommand('/teamback s' + s, true);