diff -r ef374528a9fb -r 825856c67563 share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua Wed Sep 11 08:39:00 2013 +0300 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua Wed Sep 11 21:25:50 2013 +0300 @@ -14,6 +14,7 @@ loc("You have to stand very close to him") local currentPosition = 1 local previousTimeLeft = 0 +local startChallenge = false -- dialogs local dialog01 = {} -- mission objectives @@ -60,7 +61,7 @@ -- Hog Solo AddTeam(teamA.name, teamA.color, "Bone", "Island", "HillBilly", "cm_birdy") - hero.gear = AddHog(hero.name, 0, 100, "war_desertgrenadier1") + hero.gear = AddHog(hero.name, 0, 1, "war_desertgrenadier1") AnimSetGearPosition(hero.gear, hero.x, hero.y) -- Crazy Runner AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_birdy") @@ -80,9 +81,9 @@ ShowMission(missionName, loc("Challenge Objectives"), challengeObjectives, -amSkip, 0) AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0) - AddEvent(onLose, {hero.gear}, lose, {hero.gear}, 0) AddAmmo(hero.gear, amRope, 1) + AddAmmo(hero.gear, amSkip, 1) AddAmmo(hero.gear, amTeleport, 100) SendHealthStatsOff() @@ -92,13 +93,16 @@ function onNewTurn() WriteLnToConsole("NEW TURN "..CurrentHedgehog) - if CurrentHedgehog == hero.gear then - TurnTimeLeft = runner.places[currentPosition].turnTime + previousTimeLeft - WriteLnToConsole("Turn Time is "..TurnTimeLeft) - previousTimeLeft = 0 - WriteLnToConsole("STILL HERE AND "..TurnTimeLeft.." prev hog = "..hogTurn) - else - TurnTimeLeft = 0 + if startChallenge then + if CurrentHedgehog ~= hero.gear then + TurnTimeLeft = 0 + else + if GetAmmoCount(hero.gear, amRope) == 0 then + lose() + end + TurnTimeLeft = runner.places[currentPosition].turnTime + previousTimeLeft + previousTimeLeft = 0 + end end end @@ -132,13 +136,6 @@ return false end -function onLose(gear) - if (GetAmmoCount(hero.gear, amRope) == 0 and previousTimeLeft == 0) or (CurrentHedgehog == hero.gear and TurnTimeLeft == 0)then - return true - end - return false -end - -------------- ACTIONS ------------------ function heroDeath(gear) @@ -147,12 +144,6 @@ EndGame() end -function lose(gear) - -- game over - WriteLnToConsole("END GAME 2") - EndGame() -end - -------------- ANIMATIONS ------------------ function Skipanim(anim) @@ -187,6 +178,9 @@ end function moveRunner() + if not startChallenge then + startChallenge = true + end AddAmmo(hero.gear, amRope, 1) -- add anim dialogs here if currentPosition ~= 1 then @@ -197,7 +191,24 @@ currentPosition = currentPosition + 1 SetGearPosition(runner.gear, runner.places[currentPosition].x, runner.places[currentPosition].y) WriteLnToConsole("HERE 1") - AnimSwitchHog(runner.gear) - TurnTimeLeft = 0 + WriteLnToConsole("HERE A") + TurnTimeLeft = 0 WriteLnToConsole("HERE 2") end + +function lose() + -- game over + WriteLnToConsole("ROPE "..GetAmmoCount(hero.gear, amRope)) + WriteLnToConsole("PREVIOUS TIME "..previousTimeLeft) + WriteLnToConsole("HOG "..CurrentHedgehog) + WriteLnToConsole("TurnTimeLeft "..TurnTimeLeft) + WriteLnToConsole("END GAME 2") + EndGame() +end + +function heroOutOfRope() + if GetAmmoCount(hero.gear, amRope) == 0 then + return true + end + return false +end