hedgewars/uGears.pas
changeset 4207 31e77dcf18fe
parent 4198 55814f1ef60a
child 4208 dd54999c2822
equal deleted inserted replaced
4206:85ff4cce27c6 4207:31e77dcf18fe
   722       delay2: LongWord = 0;
   722       delay2: LongWord = 0;
   723     step: (stDelay, stChDmg, stSweep, stTurnReact,
   723     step: (stDelay, stChDmg, stSweep, stTurnReact,
   724             stAfterDelay, stChWin, stWater, stChWin2, stHealth,
   724             stAfterDelay, stChWin, stWater, stChWin2, stHealth,
   725             stSpawn, stNTurn) = stDelay;
   725             stSpawn, stNTurn) = stDelay;
   726 var Gear, t: PGear;
   726 var Gear, t: PGear;
   727     i: LongInt;
   727     i, AliveCount: LongInt;
   728     s: shortstring;
   728     s: shortstring;
   729 begin
   729 begin
   730 PrvInactive:= AllInactive;
   730 PrvInactive:= AllInactive;
   731 AllInactive:= true;
   731 AllInactive:= true;
   732 
   732 
   877             CurrentHedgehog^.Gear^.State:= CurrentHedgehog^.Gear^.State and not gstAttacked;
   877             CurrentHedgehog^.Gear^.State:= CurrentHedgehog^.Gear^.State and not gstAttacked;
   878         if delay2 = 0 then
   878         if delay2 = 0 then
   879             begin
   879             begin
   880             SweepDirty;
   880             SweepDirty;
   881             CheckNoDamage;
   881             CheckNoDamage;
   882             CheckForWin
   882             AliveCount:= 0; // shorter version of check for win to allow typical step activity to proceed
       
   883             for i:= 0 to Pred(ClansCount) do
       
   884                 if ClansArray[i]^.ClanHealth > 0 then inc(AliveCount);
       
   885             if (AliveCount <= 1) and ((GameFlags and gfOneClanMode) = 0) then
       
   886                 begin
       
   887                 step:= stChDmg;
       
   888                 GameFlags:= GameFlags and not gfInfAttack;
       
   889                 TurnTimeLeft:= 0
       
   890                 end
   883             end
   891             end
   884         end
   892         end
   885     end;
   893     end;
   886 
   894 
   887 if TurnTimeLeft > 0 then
   895 if TurnTimeLeft > 0 then