diff -r 90569bd07627 -r 193b5882429d share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/cosmos.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/cosmos.lua Mon Sep 25 18:58:50 2017 +0200 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/cosmos.lua Mon Sep 25 19:16:14 2017 +0200 @@ -275,6 +275,12 @@ return false end +function onGearDelete(gear) + if GetGearType(gear) == gtCase and band(GetGearMessage(gear), gmDestroy) ~= 0 then + heroAtSaucerPosition() + end +end + function onHeroOutOfGuardSight(gear) if GetHealth(hero.gear) and GetX(gear) < 3100 and GetY(gear) > saucerY-25 and StoppedGear(gear) and not guard1.keepTurning then return true @@ -347,15 +353,18 @@ end function heroAtSaucerPosition(gear) - EndTurn(true) - -- save check point - SaveCampaignVar("CosmosCheckPoint", "2") - checkPointReached = 2 - AddAnim(dialog02) - -- check if he was spotted by the guard - if guard1.turn and GetX(hero.gear) > saucerX-150 then - guard1.keepTurning = false - AddAnim(dialog03) + if not saucerAcquired then + EndTurn(true) + -- save check point + SaveCampaignVar("CosmosCheckPoint", "2") + checkPointReached = 2 + AddAnim(dialog02) + -- check if he was spotted by the guard + if guard1.turn and GetX(hero.gear) > saucerX-150 then + guard1.keepTurning = false + AddAnim(dialog03) + end + saucerAcquired = true end end