hedgewars/uGears.pas
changeset 3109 06c089cb739c
parent 3107 1fa539758c10
child 3110 c8d7c852e26a
equal deleted inserted replaced
3108:2d666993854a 3109:06c089cb739c
   583 
   583 
   584 	while Gear <> nil do
   584 	while Gear <> nil do
   585 	begin
   585 	begin
   586 		if Gear^.Kind = gtHedgehog then
   586 		if Gear^.Kind = gtHedgehog then
   587 			begin
   587 			begin
   588         if PHedgehog(Gear^.Hedgehog)^.Poisoned then
   588             if PHedgehog(Gear^.Hedgehog)^.Poisoned then
   589           inc(Gear^.Damage, min(5, max(0,Gear^.Health - 1 - Gear^.Damage)));
   589                 inc(Gear^.Damage, min(5, max(0,Gear^.Health - 1 - Gear^.Damage)));
   590 				inc(Gear^.Damage, min(cHealthDecrease, max(0,Gear^.Health - 1 - Gear^.Damage)));
   590             inc(Gear^.Damage, min(cHealthDecrease, max(0,Gear^.Health - 1 - Gear^.Damage)));
   591 				if PHedgehog(Gear^.Hedgehog)^.King then
   591             if PHedgehog(Gear^.Hedgehog)^.King then
   592 				begin
   592                 begin
   593 					flag:= false;
   593                 flag:= false;
   594 					team:= PHedgehog(Gear^.Hedgehog)^.Team;
   594                 team:= PHedgehog(Gear^.Hedgehog)^.Team;
   595 					for i:= 0 to Pred(team^.HedgehogsNumber) do
   595                 for i:= 0 to Pred(team^.HedgehogsNumber) do
   596 						if (team^.Hedgehogs[i].Gear <> nil) and 
   596                     if (team^.Hedgehogs[i].Gear <> nil) and 
   597 							(not team^.Hedgehogs[i].King) and 
   597                         (not team^.Hedgehogs[i].King) and 
   598 							(team^.Hedgehogs[i].Gear^.Health > team^.Hedgehogs[i].Gear^.Damage) 
   598                         (team^.Hedgehogs[i].Gear^.Health > team^.Hedgehogs[i].Gear^.Damage) 
   599 						then begin
   599                     then flag:= true;
   600 								flag:= true;
   600                 if not flag then inc(Gear^.Damage, min(5, max(0,Gear^.Health - 1 - Gear^.Damage)))
   601 						end;
   601                 end;
   602 					if not flag then inc(Gear^.Damage, min(5, max(0,Gear^.Health - 1 - Gear^.Damage)))
       
   603 				end;
       
   604 			end;
   602 			end;
   605 
   603 
   606 		Gear:= Gear^.NextGear
   604 		Gear:= Gear^.NextGear
   607 	end;
   605 	end;
   608 end;
   606 end;
   703                 playSound(sndSuddenDeath)
   701                 playSound(sndSuddenDeath)
   704                 end;
   702                 end;
   705 
   703 
   706             if bBetweenTurns
   704             if bBetweenTurns
   707                 or isInMultiShoot
   705                 or isInMultiShoot
   708                 or (TotalRounds = 0) then inc(step)
   706                 or (TotalRounds = -1) then inc(step)
   709             else begin
   707             else begin
   710                 bBetweenTurns:= true;
   708                 bBetweenTurns:= true;
   711                 HealthMachine;
   709                 HealthMachine;
   712                 if cHealthDecrease > 0 then SuddenDeathDmg:= true;
   710                 if cHealthDecrease > 0 then SuddenDeathDmg:= true;
   713                 step:= stChDmg
   711                 step:= stChDmg