--- a/share/hedgewars/Data/Maps/ClimbHome/map.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Maps/ClimbHome/map.lua Tue Dec 18 18:16:31 2018 +0100
@@ -428,6 +428,7 @@
end
-- FIXME: Hog is also in winning box if it just walks into the chair from the left, touching it. Intentional?
if not YouWon and not YouLost and gearIsInBox(CurrentHedgehog, 1920, 252, 50, 50) then
+ SaveMissionVar("Won", "true")
AddCaption(loc("Victory!"), capcolDefault, capgrpGameState)
ShowMission(loc("Climb Home"),
loc("Made it!"),
--- a/share/hedgewars/Data/Missions/Challenge/Basic_Training_-_Sniper_Rifle.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Challenge/Basic_Training_-_Sniper_Rifle.lua Tue Dec 18 18:16:31 2018 +0100
@@ -384,6 +384,7 @@
else
if not game_lost then
-- Victory!
+ SaveMissionVar("Won", "true")
AddCaption(loc("Victory!"), capcolDefault, capgrpGameState)
ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0)
-- Also let the hogs shout "victory!"
--- a/share/hedgewars/Data/Missions/Challenge/User_Mission_-_RCPlane_Challenge.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Challenge/User_Mission_-_RCPlane_Challenge.lua Tue Dec 18 18:16:31 2018 +0100
@@ -407,6 +407,7 @@
SendStat(siGameResult, loc("You have finished the challenge!"))
SendStat(siCustomAchievement, string.format(loc("You have used %d RC planes."), planesUsed))
end
+ SaveMissionVar("Won", "true")
if(totalMissiles > 1) then
SendStat(siCustomAchievement, string.format(loc("You have dropped %d missiles."), totalMissiles))
--- a/share/hedgewars/Data/Missions/Challenge/User_Mission_-_Rope_Knock_Challenge.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Challenge/User_Mission_-_Rope_Knock_Challenge.lua Tue Dec 18 18:16:31 2018 +0100
@@ -2,6 +2,7 @@
local hhs = {}
local missionWon = nil
+local missionEndHandled = false
local endTimer = 1000
local hogsKilled = 0
local finishTime
@@ -234,10 +235,14 @@
EndGame()
end
- if missionWon == true then
- AddCaption(loc("Victory!"), capcolDefault, capgrpGameState)
- else
- AddCaption(loc("Challenge over!"), capcolDefault, capgrpGameState)
+ if not missionEndHandled then
+ if missionWon == true then
+ SaveMissionVar("Won", "true")
+ AddCaption(loc("Victory!"), capcolDefault, capgrpGameState)
+ else
+ AddCaption(loc("Challenge over!"), capcolDefault, capgrpGameState)
+ end
+ missionEndHandled = true
end
end
--- a/share/hedgewars/Data/Missions/Challenge/User_Mission_-_That_Sinking_Feeling.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Challenge/User_Mission_-_That_Sinking_Feeling.lua Tue Dec 18 18:16:31 2018 +0100
@@ -242,6 +242,7 @@
SendStat(siCustomAchievement, string.format(loc("You saved %d of 8 Hapless Hogs."), hhLeft))
if hhLeft == 8 then
+ SaveMissionVar("Won", "true")
awardAchievement(loc("Lively Lifeguard"))
end
EndGame()
--- a/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Bamboo_Thicket.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Bamboo_Thicket.lua Tue Dec 18 18:16:31 2018 +0100
@@ -79,6 +79,7 @@
if (gear == enemy) then
+ SaveMissionVar("Won", "true")
ShowMission(loc("Bamboo Thicket"), loc("MISSION SUCCESSFUL"), loc("Congratulations!"), 0, 0)
if (turnNumber < 6) and (firedShell == false) then
--- a/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Dangerous_Ducklings.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Dangerous_Ducklings.lua Tue Dec 18 18:16:31 2018 +0100
@@ -139,9 +139,11 @@
awardAchievement(loc("Naughty Ninja"))
DismissTeam(loc("Blue Team"))
gameWon = true
+ SaveMissionVar("Won", "true")
elseif gear == enemy then
HogSay(player, loc("Enjoy the swim..."), SAY_THINK)
gameWon = true
+ SaveMissionVar("Won", "true")
Retreat(3000)
end
--- a/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Diver.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Diver.lua Tue Dec 18 18:16:31 2018 +0100
@@ -98,6 +98,7 @@
if (gear == enemy) and (GameOver == false) then
ShowMission(loc("Diver"), loc("MISSION SUCCESSFUL"), loc("Congratulations!"), 0, 0)
+ SaveMissionVar("Won", "true")
elseif gear == player then
ShowMission(loc("Diver"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0)
GameOver = true
--- a/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Spooky_Tree.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Spooky_Tree.lua Tue Dec 18 18:16:31 2018 +0100
@@ -148,6 +148,7 @@
if (gear == enemy) and (GameOver == false) then
ShowMission(loc("Spooky Tree"), loc("MISSION SUCCESSFUL"), loc("Congratulations!"), 0, 0);
+ SaveMissionVar("Won", "true")
elseif gear == player then
ShowMission(loc("Spooky Tree"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0)
GameOver = true
--- a/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Teamwork.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Teamwork.lua Tue Dec 18 18:16:31 2018 +0100
@@ -98,5 +98,10 @@
SetHealth(p2,0)
SetHealth(player,0)
end
+ if (gear == enemy) and not (GameOver) then
+ SaveMissionVar("Won", "true")
+ GameOver = true
+ end
end
+
--- a/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Teamwork_2.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Scenario/User_Mission_-_Teamwork_2.lua Tue Dec 18 18:16:31 2018 +0100
@@ -9,6 +9,7 @@
local Pack = nil
local help = false
local GameOver = false
+local missionWon = false
function onGameInit()
Seed = 0
@@ -105,4 +106,9 @@
SetHealth(hlayer, 0)
SetHealth(player, 0)
end
+ if (gear == enemy) and (not GameOver) then
+ GameOver = true
+ SaveMissionVar("Won", "true")
+ end
end
+
--- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua Tue Dec 18 18:16:31 2018 +0100
@@ -211,6 +211,7 @@
SetWind(75)
spawnTargets()
elseif gamePhase == 7 then
+ SaveMissionVar("Won", "true")
ShowMission(loc("Basic Bazooka Training"), loc("Training complete!"), loc("Congratulations!"), 0, 0)
SetInputMask(0)
AddAmmo(CurrentHedgehog, amBazooka, 0)
--- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Flying_Saucer.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Flying_Saucer.lua Tue Dec 18 18:16:31 2018 +0100
@@ -205,6 +205,7 @@
SetState(Player, band(GetState(Player), bnot(gstHHDriven)))
SetState(Player, bor(GetState(Player), gstWinner))
PlaySound(sndVictory, Player)
+ SaveMissionVar("Won", "true")
SendStat(siGameResult, loc("You have finished the Flying Saucer Training!"))
SendStat(siCustomAchievement, loc("Good job!"))
--- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua Tue Dec 18 18:16:31 2018 +0100
@@ -189,6 +189,7 @@
2, 7000)
spawnTargets()
elseif gamePhase == 6 then
+ SaveMissionVar("Won", "true")
ShowMission(loc("Basic Grenade Training"), loc("Training complete!"), loc("Congratulations!"), 0, 0)
SetInputMask(0)
AddAmmo(CurrentHedgehog, amGrenade, 0)
--- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Movement.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Movement.lua Tue Dec 18 18:16:31 2018 +0100
@@ -249,6 +249,7 @@
end
local function victory()
+ SaveMissionVar("Won", "true")
ShowMission(loc("Basic Movement Training"), loc("Training complete!"),loc("Congratulations! You have completed the obstacle course!"), 0, 0)
SendStat(siGameResult, loc("You have completed the Basic Movement Training!"))
SendStat(siCustomAchievement, loc("Congratulations!"))
--- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Rope.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Rope.lua Tue Dec 18 18:16:31 2018 +0100
@@ -328,6 +328,7 @@
SetHealth(hog, initHogHealthFinal)
isInFinalChallenge = true
elseif currentTarget == 7 then
+ SaveMissionVar("Won", "true")
ShowMission(loc("Basic Rope Training"), loc("Training complete!"),
loc("Congratulations!"), 0, 0)
PlaySound(sndVictory, hog)
--- a/share/hedgewars/Data/Scripts/SimpleMission.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Scripts/SimpleMission.lua Tue Dec 18 18:16:31 2018 +0100
@@ -264,6 +264,8 @@
_G.sm.playerClan = 0
+ _G.sm.wonVarWritten = false
+
_G.sm.makeStats = function(winningClan, customAchievements)
for t=0, TeamsCount-1 do
local team = GetTeamName(t)
@@ -502,6 +504,10 @@
end
if victory then
_G.sm.gameEnded = true
+ if not _G.sm.wonVarWritten then
+ SaveMissionVar("Won", "true")
+ _G.sm.wonVarWritten = true
+ end
end
end
@@ -524,6 +530,10 @@
_G.sm.win = function()
if not _G.sm.gameEnded then
_G.sm.gameEnded = true
+ if not _G.sm.wonVarWritten then
+ SaveMissionVar("Won", "true")
+ _G.sm.wonVarWritten = true
+ end
AddCaption(loc("Victory!"), capcolDefault, capgrpGameState)
SendStat(siGameResult, loc("You win!"))
if GetHogLevel(CurrentHedgehog) == 0 then
@@ -693,7 +703,9 @@
_G.onNewTurn = function()
_G.sm.gameStarted = true
- if params.customGoalCheck == "turnStart" then
+ if params.customGoals == nil then
+ _G.sm.checkRegularVictory()
+ elseif params.customGoalCheck == "turnStart" then
_G.sm.checkRegularVictory()
_G.sm.checkWinOrFail()
end
@@ -702,7 +714,9 @@
_G.onEndTurn = function()
_G.sm.gameTurns = _G.sm.gameTurns + 1
- if params.customGoalCheck == "turnEnd" then
+ if params.customGoals == nil then
+ _G.sm.checkRegularVictory()
+ elseif params.customGoalCheck == "turnEnd" then
_G.sm.checkRegularVictory()
_G.sm.checkWinOrFail()
end
--- a/share/hedgewars/Data/Scripts/SpeedShoppa.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Scripts/SpeedShoppa.lua Tue Dec 18 18:16:31 2018 +0100
@@ -164,6 +164,7 @@
_G.finalize = function()
if not gameEnded then
if cratesCollected == #crates then
+ SaveMissionVar("Won", "true")
PlaySound(sndVictory, playerHog)
SetEffect(playerHog, heInvulnerable, 1)
SetState(playerHog, bor(GetState(playerHog), gstWinner))
--- a/share/hedgewars/Data/Scripts/TargetPractice.lua Tue Dec 18 15:21:23 2018 +0100
+++ b/share/hedgewars/Data/Scripts/TargetPractice.lua Tue Dec 18 18:16:31 2018 +0100
@@ -244,6 +244,7 @@
spawnTarget()
else
if not game_lost then
+ SaveMissionVar("Won", "true")
AddCaption(loc("You have destroyed all targets!"), capcolDefault, capgrpGameState)
ShowMission(params.missionTitle, loc("Aiming practice"), loc("Congratulations! You have destroyed all targets within the time."), 0, 0)
PlaySound(sndVictory, player)