# HG changeset patch # User Wuzzy # Date 1543594148 -3600 # Node ID d35e0fdb70f6dd65ca5b0b166c0ce0362a325b15 # Parent ffebbcc40c9b9e11dc5c81bf574b3f9d49c52080 Don't reduce InitialHealth below 1 diff -r ffebbcc40c9b -r d35e0fdb70f6 ChangeLog.txt --- a/ChangeLog.txt Thu Nov 29 20:37:40 2018 +0100 +++ b/ChangeLog.txt Fri Nov 30 17:09:08 2018 +0100 @@ -41,6 +41,7 @@ * Fix hog sometimes getting stuck in land if roping very fast * Fix seduction not stopping if hog took damage before attack was complete * Limit hedgehog health to 268435455 to prevent some bugs + * Fix rare possibility that hog is resurrected and starts with 0 or negative health Game, controls and commands: + Add new key to show mission panel (default: M) diff -r ffebbcc40c9b -r d35e0fdb70f6 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Thu Nov 29 20:37:40 2018 +0100 +++ b/hedgewars/uGears.pas Fri Nov 30 17:09:08 2018 +0100 @@ -128,11 +128,12 @@ if Gear^.Kind = gtHedgehog then begin tmp:= 0; + // Deal poison damage (when not frozen) if (Gear^.Hedgehog^.Effects[hePoisoned] <> 0) and (Gear^.Hedgehog^.Effects[heFrozen] = 0) then begin inc(tmp, ModifyDamage(Gear^.Hedgehog^.Effects[hePoisoned], Gear)); if (GameFlags and gfResetHealth) <> 0 then - dec(Gear^.Hedgehog^.InitialHealth) // does not need a minimum check since <= 1 basically disables it + dec(Gear^.Hedgehog^.InitialHealth); end; // Apply SD health decrease as soon as SD starts if (TotalRoundsPre > cSuddenDTurns - 1) then @@ -141,6 +142,7 @@ if (GameFlags and gfResetHealth) <> 0 then dec(Gear^.Hedgehog^.InitialHealth, cHealthDecrease) end; + // Reduce king health when he is alone in team if Gear^.Hedgehog^.King then begin flag:= false; @@ -156,6 +158,10 @@ dec(Gear^.Hedgehog^.InitialHealth, 5) end end; + // Initial health must never be below 1 because hog might be resurrected + if Gear^.Hedgehog^.InitialHealth < 1 then + Gear^.Hedgehog^.InitialHealth:= 1; + // Set real damage if tmp > 0 then begin // SD damage never reduces health below 1