At multiple requests, change ice to be turn based. This is a more modest adjustment of existing code, that can be fairly easily flagged or reverted if desired. It also allows scripts to extend freezing, and preserves fire melting.
--- a/QTfrontend/weapons.h Tue Mar 05 09:11:28 2013 +0100
+++ b/QTfrontend/weapons.h Tue Mar 05 16:04:22 2013 -0500
@@ -28,7 +28,7 @@
#define AMMOLINE_CRAZY_QT "9999999999999999992999999999999999299999999909999992999"
#define AMMOLINE_CRAZY_PROB "1111110111111111111111111111111111111111111101111111111"
-#define AMMOLINE_CRAZY_DELAY "0000000000000000000000000000000000000000000000000000020"
+#define AMMOLINE_CRAZY_DELAY "0000000000000000000000000000000000000000000000000000000"
#define AMMOLINE_CRAZY_CRATE "1311110312111111123114111111111111111211110101111111121"
#define AMMOLINE_PROMODE_QT "9090009000000000000009000000000000000000000000000000000"
@@ -38,7 +38,7 @@
#define AMMOLINE_SHOPPA_QT "0000009900000000000000000000000000000000000000000000000"
#define AMMOLINE_SHOPPA_PROB "4444410044244402210112121222422000000002000400010011001"
-#define AMMOLINE_SHOPPA_DELAY "0000000000000000000000000000000000000000000000000000020"
+#define AMMOLINE_SHOPPA_DELAY "0000000000000000000000000000000000000000000000000000000"
#define AMMOLINE_SHOPPA_CRATE "1111110111111111111111111111111111111111101101111111121"
#define AMMOLINE_CLEAN_QT "1010009000010000011000000000000000000000000000001000000"
--- a/hedgewars/GSHandlers.inc Tue Mar 05 09:11:28 2013 +0100
+++ b/hedgewars/GSHandlers.inc Tue Mar 05 16:04:22 2013 -0500
@@ -5201,7 +5201,7 @@
if hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] < 256 then
hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] := hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] + 1
else if hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] = 256 then
- hogs.ar^[i]^.Hedgehog^.Effects[heFrozen]:= cHedgehogTurnTime + cReadyDelay
+ hogs.ar^[i]^.Hedgehog^.Effects[heFrozen]:= 150000;//cHedgehogTurnTime + cReadyDelay
end;
inc(Pos)
end
--- a/hedgewars/uGearsHedgehog.pas Tue Mar 05 09:11:28 2013 +0100
+++ b/hedgewars/uGearsHedgehog.pas Tue Mar 05 16:04:22 2013 -0500
@@ -1260,6 +1260,7 @@
exit
end;
if GameTicks mod 100 = 0 then CheckIce(Gear);
+(*
if Gear^.Hedgehog^.Effects[heFrozen] > 0 then
begin
if (Gear^.Hedgehog^.Effects[heFrozen] > 256) and (CurrentHedgehog^.Team^.Clan <> Gear^.Hedgehog^.Team^.Clan) then
@@ -1267,6 +1268,9 @@
else if GameTicks mod 10 = 0 then
dec(Gear^.Hedgehog^.Effects[heFrozen])
end;
+*)
+if (GameTicks mod 10 = 0) and (Gear^.Hedgehog^.Effects[heFrozen] > 0) and (Gear^.Hedgehog^.Effects[heFrozen] < 256) then
+ dec(Gear^.Hedgehog^.Effects[heFrozen]);
if (Gear^.State and gstHHDriven) = 0 then
doStepHedgehogFree(Gear)
else
--- a/hedgewars/uTeams.pas Tue Mar 05 09:11:28 2013 +0100
+++ b/hedgewars/uTeams.pas Tue Mar 05 16:04:22 2013 -0500
@@ -110,7 +110,7 @@
end;
procedure SwitchHedgehog;
-var c: LongWord;
+var c, i, j: LongWord;
PrevHH, PrevTeam : LongWord;
begin
TargetPoint.X:= NoPointX;
@@ -173,7 +173,15 @@
if c = ClansCount then
begin
if not PlacingHogs then
+ begin
inc(TotalRounds);
+ for i:= 0 to Pred(TeamsCount) do
+ with TeamsArray[i]^ do
+ for j:= 0 to Pred(HedgehogsNumber) do
+ with Hedgehogs[j] do
+ if Effects[heFrozen] > 255 then
+ Effects[heFrozen]:= max(255,Effects[heFrozen]-50000)
+ end;
c:= 0
end;