Make hogs thaw only on enemy turns, make timebox counter decrement only on your turn, adjust knock for frozen hogs, increase damage on frozen hogs, make freezer fuel only reduce when not adjusting angle.
--- a/hedgewars/GSHandlers.inc Sun Mar 03 14:58:58 2013 -0500
+++ b/hedgewars/GSHandlers.inc Sun Mar 03 19:43:01 2013 -0500
@@ -92,7 +92,7 @@
else
begin
- if (gi^.State and gstMoving) = 0 then
+ if ((gi^.State and gstMoving) = 0) and (gi^.Hedgehog^.Effects[heFrozen] = 0) then
begin
gi^.dX.isNegative:= X<gi^.X;
gi^.State := gi^.State or gstLoser;
@@ -4956,7 +4956,7 @@
end;
Gear^.Pos:= 4;
// This condition might need tweaking
- Gear^.Timer:= GetRandom(cHedgehogTurnTime*TeamsCount*2)+cHedgehogTurnTime*2
+ Gear^.Timer:= GetRandom(cHedgehogTurnTime*TeamsCount)+cHedgehogTurnTime
end;
if (Gear^.Pos = 4) then
@@ -4992,7 +4992,7 @@
Gear^.Power:= 0;
end
end
- else dec(Gear^.Timer);
+ else if (CurrentHedgehog^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan) then dec(Gear^.Timer)
end;
end;
@@ -5124,10 +5124,7 @@
AfterAttack;
exit
end
- else
- begin
- updateFuel(Gear);
- end;
+ else if Gear^.Message and (gmUp or gmDown) = 0 then updateFuel(Gear);
with Gear^ do
begin
@@ -5203,7 +5200,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]:= 100000
+ hogs.ar^[i]^.Hedgehog^.Effects[heFrozen]:= cHedgehogTurnTime + cReadyDelay
end;
inc(Pos)
end
--- a/hedgewars/uGears.pas Sun Mar 03 14:58:58 2013 -0500
+++ b/hedgewars/uGears.pas Sun Mar 03 19:43:01 2013 -0500
@@ -838,7 +838,7 @@
ApplyDamage(Gear, Ammo^.Hedgehog, tmpDmg * 100, dsUnknown); // crank up damage for explosives + blowtorch
end;
- if (Gear^.Kind = gtHedgehog) and Gear^.Hedgehog^.King then
+ if (Gear^.Kind = gtHedgehog) and (Gear^.Hedgehog^.King or (Gear^.Hedgehog^.Effects[heFrozen] > 0)) then
begin
Gear^.dX:= Ammo^.dX * Power * _0_005;
Gear^.dY:= Ammo^.dY * Power * _0_005
--- a/hedgewars/uGearsHedgehog.pas Sun Mar 03 14:58:58 2013 -0500
+++ b/hedgewars/uGearsHedgehog.pas Sun Mar 03 19:43:01 2013 -0500
@@ -1261,7 +1261,7 @@
if GameTicks mod 100 = 0 then CheckIce(Gear);
if Gear^.Hedgehog^.Effects[heFrozen] > 0 then
begin
- if Gear^.Hedgehog^.Effects[heFrozen] > 256 then
+ if (Gear^.Hedgehog^.Effects[heFrozen] > 256) and (CurrentHedgehog^.Team^.Clan <> Gear^.Hedgehog^.Team^.Clan) then
dec(Gear^.Hedgehog^.Effects[heFrozen])
else if GameTicks mod 10 = 0 then
dec(Gear^.Hedgehog^.Effects[heFrozen])
--- a/hedgewars/uGearsUtils.pas Sun Mar 03 14:58:58 2013 -0500
+++ b/hedgewars/uGearsUtils.pas Sun Mar 03 19:43:01 2013 -0500
@@ -182,8 +182,7 @@
i:= _1;
if (CurrentHedgehog <> nil) and CurrentHedgehog^.King then
i:= _1_5;
-if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Effects[heFrozen] > 0) then i:=i*_0_2;
-if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.King) then
+if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.King or (Gear^.Hedgehog^.Effects[heFrozen] > 0)) then
ModifyDamage:= hwRound(_0_01 * cDamageModifier * dmg * i * cDamagePercent * _0_5)
else
ModifyDamage:= hwRound(_0_01 * cDamageModifier * dmg * i * cDamagePercent)