# HG changeset patch # User Wuzzy # Date 1558560610 -7200 # Node ID 2e89487540d817425bc1448481df29744e40df5f # Parent 09c63d4bcf53cc6be23dbf8a6da0f78427ea31f6 ACF2: Prevent cut scene from playing when own hogs are dead or about to die diff -r 09c63d4bcf53 -r 2e89487540d8 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/shadow.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/shadow.lua Wed May 22 11:31:55 2019 +0200 +++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/shadow.lua Wed May 22 23:30:10 2019 +0200 @@ -756,10 +756,26 @@ return brainiacDead end +function isHogAlive(hog) + if GetHealth(hog) == nil or GetHealth(hog) <= 0 then + return false + else + local _,_,_,_,_,_,_,_,_,_,_,damage = GetGearValues(hog) + if damage > GetHealth(hog) then + return false + end + end + return true +end + function DoBrainiacDead() if stage == loseStage then return end + if (not isHogAlive(dense)) or (not isHogAlive(leaks)) then + return + end + EndTurn(true) SetGearMessage(CurrentHedgehog, 0) AddAnim(weaklingsAnim) @@ -780,7 +796,7 @@ if stage == loseStage then return end - if denseDead or GetHealth(dense) == 0 or leaksDead or GetHealth(leaks) == 0 then + if (not isHogAlive(dense)) or (not isHogAlive(leaks)) then return end SetGearMessage(CurrentHedgehog, 0) @@ -924,7 +940,7 @@ if stage == loseStage then return end - if leaksDead or GetHealth(leaks) == 0 then + if not isHogAlive(leaks) then return end SetGearMessage(CurrentHedgehog, 0)