--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/epil.lua Sun Aug 19 03:10:57 2012 +0300
@@ -0,0 +1,439 @@
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+loadfile(GetDataPath() .. "Scripts/Animate.lua")()
+
+-----------------------------Constants---------------------------------
+leaksNum = 1
+denseNum = 2
+waterNum = 3
+buffaloNum = 4
+chiefNum = 5
+girlNum = 6
+wiseNum = 7
+ramonNum = 8
+spikyNum = 9
+princessNum = 10
+
+denseScene = 1
+princessScene = 2
+waterScene = 3
+cyborgScene = 4
+
+nativeNames = {loc("Leaks A Lot"), loc("Dense Cloud"), loc("Fiery Water"),
+ loc("Raging Buffalo"), loc("Righteous Beard"), loc("Fell From Grace"),
+ loc("Wise Oak"), loc("Ramon"), loc("Spiky Cheese"),
+ loc("Fell From Heaven")
+ }
+nativeHats = {"Rambo", "RobinHood", "pirate_jack", "zoo_Bunny", "IndianChief",
+ "tiara", "AkuAku", "rasta", "hair_yellow", "tiara"}
+
+nativePosCyborg = {{1900, 508}, {480, 1321}, {2927, 873},
+ {1325, 905}, {3190, 1424}, {1442, 857},
+ {1134, 1278}, {2881, 853}, {2974, 897},
+ {2033, 511}}
+nativeDirCyborg = {"Right", "Right", "Left", "Right", "Right", "Left", "Right", "Right", "Left", "Left"}
+
+nativePosPrincess = {{1930, 508}, {480, 1321}, {2927, 873},
+ {1325, 905}, {3190, 1424}, {2033, 511},
+ {1134, 1278}, {2881, 853}, {2974, 897},
+ {1900, 508}}
+nativeDirPrincess = {"Right", "Right", "Left", "Right", "Right", "Left", "Right", "Right", "Left", "Right"}
+
+nativePosDense = {{1930, 508}, {2285, 772}, {2927, 873},
+ {1325, 905}, {3190, 1424}, {1442, 857},
+ {1134, 1278}, {480, 1321}, {2974, 897},
+ {2033, 511}}
+nativeDirDense = {"Right", "Left", "Left", "Right", "Right", "Left", "Right", "Right", "Left", "Left"}
+
+nativePosWater = {{1900, 508}, {2033, 511}, {2285, 772},
+ {1325, 905}, {3190, 1424}, {1442, 857},
+ {1134, 1278}, {480, 1321}, {2974, 897},
+ {1980, 511}}
+nativeDirWater = {"Right", "Left", "Left", "Right", "Right", "Left", "Right", "Right", "Left", "Left"}
+
+prisonPos = {2285, 772}
+
+brainNum = 1
+corpseNum = 2
+brutalNum = 3
+earNum = 4
+hanniNum = 5
+
+cannibalNames = {loc("Brainiac"), loc("Corpse Thrower"), loc("Brutal Lily"), loc("Ear Sniffer"), loc("Hannibal")}
+cannibalHats = {"Zombi", "AkuAku", "Zombi", "Zombi", "IndianChief"}
+cannibalPos = {{533, 1304}, {1184, 1282}, {1386, 883}, {2854, 834}, {3243, 1415}}
+cannibalDir = {"Left", "Left", "Left", "Right", "Left"}
+-----------------------------Variables---------------------------------
+natives = {}
+cannibals = {}
+traitor = nil
+crate = nil
+
+startAnim = {}
+
+gearDead = {}
+--------------------------Anim skip functions--------------------------
+function SkipStartAnim()
+ SetGearMessage(CurrentHedgehog, 0)
+ AnimSwitchHog(natives[1])
+end
+
+function AfterStartAnim()
+ crate = SpawnHealthCrate(0, 0)
+ SetGearMessage(CurrentHedgehog, 0)
+ AddNewEvent(CheckCrateTaken, {}, DoCrateTaken, {}, 1)
+ TurnTimeLeft = 0
+ ShowMission("Epilogue", "That's all folks!", "You have successfully finished the campaign!|If you wish to replay, there are other possible endings, too!|You can practice moving around and using utilities in this mission.|However, it will never end!", 1, 0)
+end
+
+---------------------------Events-------------------------------------
+function CheckCrateTaken()
+ return gearDead[crate]
+end
+
+function DoCrateTaken()
+ crate = SpawnHealthCrate(0, 0)
+end
+-----------------------------Animations--------------------------------
+function AnimationSetup()
+ if m8Scene == cyborgScene then
+ SetupAnimCyborg()
+ elseif m8Scene == princessScene then
+ SetupAnimPrincess()
+ elseif m8Scene == waterScene then
+ SetupAnimWater()
+ else
+ SetupAnimDense()
+ end
+ AddSkipFunction(startAnim, SkipStartAnim, {})
+end
+
+function SetupAnimWater()
+ startAnim = {
+ {func = AnimWait, args = {natives[1], 3000}},
+ {func = AnimCaption, args = {natives[ramonNum], "Back in the village, the two tribes finally started to live in harmony.", 5000}},
+ {func = AnimSay, args = {natives[ramonNum], "You got a killer mask there, amigo!", SAY_SAY, 5500}},
+ {func = AnimSay, args = {cannibals[brainNum], "Thanks, man! It really means a lot to me.", SAY_SAY, 6000}},
+ {func = AnimSay, args = {natives[wiseNum], "So, uhmm, how did you manage to teleport them so far?", SAY_SAY, 8000}},
+ {func = AnimSay, args = {cannibals[corpseNum], "It's all about the right carrots, you know.", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[wiseNum], "Of course! It's all obvious now!", SAY_SAY, 4500}},
+ {func = AnimSay, args = {natives[chiefNum], "I can't believe how blind we were...", SAY_SAY, 4500}},
+ {func = AnimSay, args = {natives[chiefNum], "Fighting instead of cultivating a beautiful friendship.", SAY_SAY, 8500}},
+ {func = AnimSay, args = {cannibals[hanniNum], "One shall not judge one by one's appearance!", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[chiefNum], "You speak great truth, Hannibal. Here, take a sip!", SAY_SAY, 7500}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimSay, args = {natives[leaksNum], "It's amazing how quickly our lives can change...", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[waterNum], "Aye! Fellow! Let me exit this chamber of doom!", SAY_SAY, 7000}},
+ {func = AnimTurn, args = {natives[princessNum], "Right"}},
+ {func = AnimSay, args = {natives[princessNum], "It's your fault you're there!", SAY_SAY, 5000}},
+ {func = AnimTurn, args = {natives[princessNum], "Left"}},
+ {func = AnimSay, args = {natives[leaksNum], "I always suspected him!", SAY_SAY, 3000}},
+ {func = AnimSay, args = {natives[leaksNum], "Nobody takes walks every day!", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[princessNum], "I don't know who I can trust anymore.", SAY_SAY, 6000}},
+ {func = AnimSay, args = {natives[princessNum], "Everywhere I look, I see hogs walking around...", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[princessNum], "...and I think they are up to something. Something bad!", SAY_SAY, 8000}},
+ {func = AnimMove, args = {natives[leaksNum], "Right", nativePosWater[princessNum][1] - 30, nativePosWater[princessNum][2]}},
+ {func = AnimSay, args = {natives[leaksNum], "You can always trust me! I love you!", SAY_SAY, 6000}},
+ {func = AnimSay, args = {natives[princessNum], "I know and I'm terribly sorry!", SAY_SAY, 5000}},
+ {func = AnimSay, args = {natives[princessNum], "I love Dense Cloud now!", SAY_SAY, 4000}},
+ {func = AnimTurn, args = {natives[princessNum], "Right"}},
+ {func = AnimMove, args = {natives[denseNum], "Left", nativePosWater[princessNum][1] + 20, nativePosWater[princessNum][2]}},
+ {func = AnimSay, args = {natives[denseNum], "Problems, dude? Chillax!", SAY_SAY, 4000}},
+ {func = AnimTurn, args = {natives[leaksNum], "Left"}},
+ {func = AnimSay, args = {natives[leaksNum], "(T_T)", SAY_SAY, 6000}},
+ {func = AnimSwitchHog, args = {natives[leaksNum]}},
+ }
+end
+
+function SetupAnimDense()
+ startAnim = {
+ {func = AnimWait, args = {natives[1], 3000}},
+ {func = AnimCaption, args = {natives[ramonNum], "Back in the village, the two tribes finally started to live in harmony.", 5000}},
+ {func = AnimSay, args = {natives[ramonNum], "You got a killer mask there, amigo!", SAY_SAY, 5500}},
+ {func = AnimSay, args = {cannibals[brainNum], "Thanks, man! It really means a lot to me.", SAY_SAY, 6000}},
+ {func = AnimSay, args = {natives[wiseNum], "So, uhmm, how did you manage to teleport them so far?", SAY_SAY, 8000}},
+ {func = AnimSay, args = {cannibals[corpseNum], "It's all about the right carrots, you know.", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[wiseNum], "Of course! It's all obvious now!", SAY_SAY, 4500}},
+ {func = AnimSay, args = {natives[chiefNum], "I can't believe how blind we were...", SAY_SAY, 4500}},
+ {func = AnimSay, args = {natives[chiefNum], "Fighting instead of cultivating a beautiful friendship.", SAY_SAY, 8500}},
+ {func = AnimSay, args = {cannibals[hanniNum], "One shall not judge one by one's appearance!", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[chiefNum], "You speak great truth, Hannibal. Here, take a sip!", SAY_SAY, 7500}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimSay, args = {natives[waterNum], "...And then I took a stroll...", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[leaksNum], "It's amazing how quickly our lives can change...", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[denseNum], "Dude, let me out!", SAY_SAY, 3000}},
+ {func = AnimSay, args = {natives[denseNum], "I already said I'm sorry!", SAY_SAY, 4000}},
+ {func = AnimTurn, args = {natives[princessNum], "Right"}},
+ {func = AnimSay, args = {natives[princessNum], "Traitors don't get to shout around here!", SAY_SAY, 7000}},
+ {func = AnimTurn, args = {natives[princessNum], "Left"}},
+ {func = AnimSay, args = {natives[leaksNum], "I still can't believe he sold us out like that.", SAY_SAY, 8000}},
+ {func = AnimSay, args = {natives[princessNum], "I don't know who I can trust anymore.", SAY_SAY, 6000}},
+ {func = AnimMove, args = {natives[leaksNum], "Right", nativePosDense[princessNum][1] - 30, nativePosDense[princessNum][2]}},
+ {func = AnimSay, args = {natives[leaksNum], "You can always trust me!", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[princessNum], "I know, my hero!", SAY_SAY, 3000}},
+ {func = AnimSay, args = {natives[princessNum], "...xoxo...", SAY_SAY, 2000}},
+ {func = AnimSwitchHog, args = {natives[leaksNum]}},
+ }
+end
+
+function SetupAnimCyborg()
+ startAnim = {
+ {func = AnimWait, args = {natives[1], 3000}},
+ {func = AnimCaption, args = {natives[denseNum], "Back in the village, the two tribes finally started to live in harmony.", 5000}},
+ {func = AnimSay, args = {natives[denseNum], "Dude, that outfit is so kool!", SAY_SAY, 4500}},
+ {func = AnimSay, args = {cannibals[brainNum], "Thanks, dude! It really means a lot to me.", SAY_SAY, 6000}},
+ {func = AnimSay, args = {natives[wiseNum], "So, uhmm, how did you manage to teleport them so far?", SAY_SAY, 8000}},
+ {func = AnimSay, args = {cannibals[corpseNum], "It's all about the right carrots, you know.", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[wiseNum], "Of course! It's all obvious now!", SAY_SAY, 4500}},
+ {func = AnimSay, args = {natives[chiefNum], "I can't believe how blind we were...", SAY_SAY, 4500}},
+ {func = AnimSay, args = {natives[chiefNum], "Fighting instead of cultivating a beautiful friendship.", SAY_SAY, 8500}},
+ {func = AnimSay, args = {cannibals[hanniNum], "One shall not judge one by one's appearance!", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[chiefNum], "You speak great truth, Hannibal. Here, take a sip!", SAY_SAY, 7500}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimSay, args = {natives[waterNum], "...And then I took a stroll...", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[leaksNum], "I'm glad this is over!", SAY_SAY, 4000}},
+ {func = AnimMove, args = {natives[princessNum], "Right", nativePosCyborg[princessNum][1] + 30, nativePosCyborg[princessNum][2]}},
+ {func = AnimSay, args = {natives[princessNum], "I was so scared.", SAY_SAY, 2500}},
+ {func = AnimMove, args = {natives[leaksNum], "Right", nativePosCyborg[princessNum][1], nativePosCyborg[princessNum][2]}},
+ {func = AnimSay, args = {natives[leaksNum], "You have nothing to be afraid of now.", SAY_SAY, 6000}},
+ {func = AnimSay, args = {natives[leaksNum], "I'll protect you!", SAY_SAY, 3000}},
+ {func = AnimTurn, args = {natives[princessNum], "Left"}},
+ {func = AnimSay, args = {natives[princessNum], "You're so brave...I feel safe with you.", SAY_SAY, 6500}},
+ {func = AnimSay, args = {natives[princessNum], "I think I love you!", SAY_SAY, 3500}},
+ {func = AnimSay, args = {natives[leaksNum], "I...like being with you too.", SAY_SAY, 4500}},
+ }
+end
+
+function SetupAnimPrincess()
+ startAnim = {
+ {func = AnimWait, args = {natives[1], 3000}},
+ {func = AnimCaption, args = {natives[denseNum], "Back in the village, the two tribes finally started to live in harmony.", 5000}},
+ {func = AnimSay, args = {natives[denseNum], "Dude, that outfit is so kool!", SAY_SAY, 4500}},
+ {func = AnimSay, args = {cannibals[brainNum], "Thanks, dude! It really means a lot to me.", SAY_SAY, 6000}},
+ {func = AnimSay, args = {natives[wiseNum], "So, uhmm, how did you manage to teleport them so far?", SAY_SAY, 8000}},
+ {func = AnimSay, args = {cannibals[corpseNum], "It's all about the right carrots, you know.", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[wiseNum], "Of course! It's all obvious now!", SAY_SAY, 4500}},
+ {func = AnimSay, args = {natives[chiefNum], "I can't believe how blind we were...", SAY_SAY, 4500}},
+ {func = AnimSay, args = {natives[chiefNum], "Fighting instead of cultivating a beautiful friendship.", SAY_SAY, 8500}},
+ {func = AnimSay, args = {cannibals[hanniNum], "One shall not judge one by one's appearance!", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[chiefNum], "You speak great truth, Hannibal. Here, take a sip!", SAY_SAY, 7500}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimVisualGear, args = {cannibals[hanniNum], cannibalPos[hanniNum][1], cannibalPos[hanniNum][2], vgtSmoke, 0, true}},
+ {func = AnimWait, args = {natives[1], 1000}},
+ {func = AnimSay, args = {natives[buffaloNum], "So I shook my fist in the air!", SAY_SAY, 5000}},
+ {func = AnimSay, args = {cannibals[brutalNum], "Well that was an unnecessary act of violence.", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[waterNum], "...And then I took a stroll...", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[leaksNum], "I'm glad this is over!", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[girlNum], "I still can't believe you forgave her!", SAY_SAY, 6000}},
+ {func = AnimSay, args = {natives[girlNum], "She endangered the whole tribe!", SAY_SAY, 5000}},
+ {func = AnimSay, args = {natives[leaksNum], "It wasn't her fault!", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[leaksNum], "We oppressed her, the only woman in the tribe!", SAY_SAY, 7000}},
+ {func = AnimSay, args = {natives[girlNum], "The only woman, huh?", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[girlNum], "Then what am I?", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[leaksNum], "Of course, but you're...special.", SAY_SAY, 5000}},
+ {func = AnimSay, args = {natives[girlNum], "Sure!", SAY_SAY, 2000}},
+ {func = AnimTurn, args = {natives[leaksNum], "Left"}},
+ {func = AnimSay, args = {natives[leaksNum], "We're terribly sorry!", SAY_SAY, 4000}},
+ {func = AnimSay, args = {natives[princessNum], "I don't know if I can forget what you've done!", SAY_SAY, 7000}},
+ {func = AnimTurn, args = {natives[princessNum], "Left"}},
+ {func = AnimMove, args = {natives[princessNum], "Left", nativePosPrincess[princessNum][1] - 10, nativePosPrincess[princessNum][2]}},
+ {func = AnimSwitchHog, args = {natives[leaksNum]}}
+ }
+end
+-----------------------------Misc--------------------------------------
+function GetVariables()
+ m8Scene = tonumber(GetCampaignVar("M8Scene"))
+end
+
+function AddHogs()
+ AddTeam(loc("Natives"), 29439, "Bone", "Island", "HillBilly", "cm_birdy")
+ for i = 1, 5 do
+ natives[i] = AddHog(nativeNames[i], 0, 100, nativeHats[i])
+ end
+
+ AddTeam(loc("More Natives"), 29439, "Bone", "Island", "HillBilly", "cm_birdy")
+ for i = 6, 10 do
+ natives[i] = AddHog(nativeNames[i], 0, 100, nativeHats[i])
+ end
+
+ AddTeam(loc("Cannibals"), 29439, "Bone", "Island", "HillBilly", "cm_birdy")
+ for i = 1, 5 do
+ cannibals[i] = AddHog(cannibalNames[i], 0, 100, cannibalHats[i])
+ end
+
+ if m8Scene == denseScene or m8Scene == waterScene then
+ AddTeam(loc("Traitors"), 29439, "Bone", "Island", "HillBilly", "cm_birdy")
+ if m8Scene == denseScene then
+ DeleteGear(natives[2])
+ natives[2] = AddHog(nativeNames[2], 0, 100, nativeHats[2])
+ else
+ DeleteGear(natives[3])
+ natives[3] = AddHog(nativeNames[3], 0, 100, nativeHats[3])
+ end
+ end
+
+ SetGearPositions()
+end
+
+function SetGearPositions()
+ if m8Scene == cyborgScene then
+ for i = 1, 10 do
+ AnimSetGearPosition(natives[i], unpack(nativePosCyborg[i]))
+ AnimTurn(natives[i], nativeDirCyborg[i])
+ end
+ elseif m8Scene == waterScene then
+ for i = 1, 10 do
+ AnimSetGearPosition(natives[i], unpack(nativePosWater[i]))
+ AnimTurn(natives[i], nativeDirWater[i])
+ end
+ elseif m8Scene == denseScene then
+ for i = 1, 10 do
+ AnimSetGearPosition(natives[i], unpack(nativePosDense[i]))
+ AnimTurn(natives[i], nativeDirDense[i])
+ end
+ else
+ for i = 1, 10 do
+ AnimSetGearPosition(natives[i], unpack(nativePosPrincess[i]))
+ AnimTurn(natives[i], nativeDirPrincess[i])
+ end
+ end
+
+ for i = 1, 5 do
+ AnimSetGearPosition(cannibals[i], unpack(cannibalPos[i]))
+ AnimTurn(cannibals[i], cannibalDir[i])
+ end
+end
+
+function SetupPlace()
+ if m8Scene == denseScene or m8Scene == waterScene then
+ PlaceGirder(2296, 798, 4)
+ PlaceGirder(2296, 700, 4)
+ PlaceGirder(2225, 750, 2)
+ PlaceGirder(2245, 750, 2)
+ PlaceGirder(2265, 750, 2)
+ PlaceGirder(2305, 750, 2)
+ PlaceGirder(2345, 750, 2)
+ PlaceGirder(2365, 750, 2)
+ end
+ if m8Scene == denseScene then
+ traitor = natives[denseNum]
+ elseif m8Scene == waterScene then
+ traitor = natives[waterNum]
+ end
+end
+-----------------------------Main Functions----------------------------
+function onGameInit()
+ Seed = 1
+ GameFlags = gfOneClanMode
+ TurnTime = 60000
+ CaseFreq = 0
+ MinesNum = 0
+ MinesTime = 3000
+ Explosives = 0
+ Delay = 10
+ Map = "Hogville"
+ Theme = "Nature"
+ SuddenDeathTurns = 3000
+
+ GetVariables()
+ AddHogs()
+ AnimInit()
+end
+
+function onGameStart()
+ SetupPlace()
+ AnimationSetup()
+ AddAnim(startAnim)
+ AddFunction({func = AfterStartAnim, args = {}})
+end
+
+function onGameTick()
+ AnimUnWait()
+ if ShowAnimation() == false then
+ return
+ end
+ ExecuteAfterAnimations()
+ CheckEvents()
+end
+
+function onGearDelete(gear)
+ gearDead[gear] = true
+end
+
+function onGearAdd(gear)
+end
+
+function onAmmoStoreInit()
+ SetAmmo(amAirStrike, 9, 0, 0, 0)
+ SetAmmo(amBaseballBat, 9, 0, 0, 0)
+ SetAmmo(amBazooka, 9, 0, 0, 0)
+ SetAmmo(amBlowTorch, 9, 0, 0, 0)
+ SetAmmo(amClusterBomb,9, 0, 0, 0)
+ SetAmmo(amDEagle, 9, 0, 0, 0)
+ SetAmmo(amDrill, 9, 0, 0, 4)
+ SetAmmo(amDynamite, 9, 0, 0, 3)
+ SetAmmo(amFirePunch, 9, 0, 0, 0)
+ SetAmmo(amFlamethrower, 9, 0, 0, 3)
+ SetAmmo(amGirder, 9, 0, 0, 0)
+ SetAmmo(amGrenade, 9, 0, 0, 0)
+ SetAmmo(amHammer, 9, 0, 0, 0)
+ SetAmmo(amJetpack, 9, 0, 0, 0)
+ SetAmmo(amLandGun, 9, 0, 0, 0)
+ SetAmmo(amLowGravity, 9, 0, 0, 2)
+ SetAmmo(amMine, 9, 0, 0, 2)
+ SetAmmo(amMolotov, 9, 0, 0, 3)
+ SetAmmo(amMortar, 9, 0, 0, 4)
+ SetAmmo(amNapalm, 9, 0, 0, 4)
+ SetAmmo(amParachute, 9, 0, 0, 0)
+ SetAmmo(amPickHammer, 9, 0, 0, 0)
+ SetAmmo(amPortalGun, 9, 0, 0, 0)
+ SetAmmo(amRope, 9, 0, 0, 0)
+ SetAmmo(amRCPlane, 9, 0, 0, 0)
+ SetAmmo(amSkip, 9, 0, 0, 0)
+ SetAmmo(amShotgun, 9, 0, 0, 0)
+ SetAmmo(amSMine, 9, 0, 0, 2)
+ SetAmmo(amSniperRifle, 9, 0, 0, 0)
+ SetAmmo(amSnowball, 9, 0, 0, 0)
+ SetAmmo(amSwitch, 9, 0, 0, 0)
+ SetAmmo(amTeleport, 9, 0, 0, 0)
+ SetAmmo(amWatermelon, 9, 0, 0, 0)
+ SetAmmo(amWhip, 9, 0, 0, 0)
+end
+
+function onNewTurn()
+ if AnimInProgress() then
+ TurnTimeLeft = -1
+ return
+ end
+ if CurrentHedgehog == traitor then
+ TurnTimeLeft = 0
+ else
+ TurnTimeLeft = -1
+ end
+end
+
+function onGearDamage(gear, damage)
+end
+
+function onPrecise()
+ if GameTime > 2500 then
+ SetAnimSkip(true)
+ end
+end