share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/queen.lua
branchspacecampaign
changeset 9308 4bddcc1a1450
parent 9296 5cc010e79431
parent 9306 c9978ada9a3d
child 9310 1469147c110f
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/queen.lua	Mon Jul 01 22:28:42 2013 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,828 +0,0 @@
-HedgewarsScriptLoad("/Scripts/Locale.lua")
-HedgewarsScriptLoad("/Scripts/Animate.lua")
-
-
------------------------------Map--------------------------------------
-local map =
-{
-	"\16\7\0\225\132\15\200\1\40\0\15\200\1\40\132\15\105\8\81\0\16\14\1\64\143\15\200\7\249\0\13\50\7\252\132\12\243\7\172\0",
-	"\12\236\7\168\132\12\127\6\192\0\12\127\6\192\132\11\52\6\223\0\11\52\6\223\132\10\62\8\35\0\8\201\8\4\132\8\63\7\126\0",
-	"\8\63\7\126\132\8\4\6\58\0\8\0\6\65\132\7\147\6\241\0\7\133\6\195\132\7\20\4\151\0\7\143\6\195\132\7\140\6\234\0",
-	"\7\17\4\151\132\5\191\4\222\0\5\191\4\222\132\3\136\3\252\0\3\136\3\252\132\2\12\4\151\0\2\12\4\151\132\1\138\5\15\0",
-	"\1\138\5\15\132\1\54\5\156\0\1\54\5\156\132\0\130\5\64\0\0\130\5\64\132\255\214\5\135\0\8\141\1\85\179\8\141\1\85\0",
-	"\10\30\2\220\139\10\30\2\220\0\11\77\1\142\131\11\77\1\142\0\10\188\0\113\129\10\188\0\113\0\255\235\0\162\132\0\130\0\225\0",
-	"\0\130\0\229\0\0\127\0\236\132\255\231\0\250\0\0\28\0\215\136\0\4\0\211\0\0\95\5\212\154\0\95\7\238\0\0\246\6\2\154",
-	"\1\71\8\0\0\1\205\5\145\154\2\132\4\239\0\3\98\4\141\154\1\135\5\216\0\3\179\4\151\154\6\213\5\247\0\6\223\5\124\151",
-	"\6\185\5\22\0\6\181\5\29\151\6\37\5\64\0\0\179\5\198\148\0\179\5\198\0\6\216\4\253\148\6\216\4\253\0\1\230\7\147\153",
-	"\8\32\8\18\0\1\187\6\174\153\7\179\7\108\0\2\199\5\177\179\6\128\6\167\0\7\231\7\10\143\7\231\6\202\0\12\148\8\4\156",
-	"\10\241\8\11\0\11\112\7\101\156\12\56\7\91\0\1\89\5\223\199\4\11\5\208\0\4\67\5\212\200\4\172\6\58\0\4\172\6\58\200",
-	"\5\36\5\212\0\5\40\5\194\200\4\169\5\57\0\4\169\5\57\200\4\42\5\205\0\4\130\5\142\200\4\218\5\205\0\4\137\5\194\200",
-	"\4\179\5\251\0\255\245\1\198\133\0\77\1\198\0\0\77\1\198\133\0\102\1\226\0\0\102\1\230\133\255\221\1\244\0\255\245\0\148\195",
-	"\255\231\1\11\0\0\32\0\162\195\255\231\0\169\0\0\60\0\158\195\0\32\0\172\0\0\21\0\176\195\255\242\0\222\0\255\245\0\215\195",
-	"\0\7\0\246\0\255\245\0\243\195\0\11\1\33\0\0\4\1\4\195\0\56\1\36\0\255\245\1\173\195\0\35\1\110\0\255\242\1\180\195",
-	"\255\224\2\9\0\255\238\1\240\195\0\28\2\30\0\0\21\2\19\195\0\102\2\23\0\16\18\1\1\195\16\35\0\222\0\16\14\1\11\195",
-	"\16\7\2\9\0\16\0\2\16\195\16\35\3\34\0\16\11\2\252\195\16\11\4\208\0\16\11\4\208\195\16\0\6\55\0\16\0\6\55\195",
-	"\16\14\8\25\0",
-}
-
---------------------------------------------Constants------------------------------------
-choiceAccepted = 1
-choiceRefused = 2
-choiceAttacked = 3
-
-choiceEliminate = 1
-choiceSpare = 2
-
-leaksNum = 1
-denseNum = 2
-waterNum = 3
-buffaloNum = 4
-chiefNum = 5
-girlNum = 6
-wiseNum = 7
-
-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")
-              }
-nativeSaveNames = {"M8DeployedDead", "M8RamonDead", "M8SpikyDead", "M8PrincessDead"}
-
-nativeUnNames = {loc("Zork"), loc("Steve"), loc("Jack"),
-                 loc("Lee"), loc("Elmo"), loc("Rachel"),
-                 loc("Muriel")}
-
-nativeHats = {"Rambo", "RobinHood", "pirate_jack", "zoo_Bunny", "IndianChief",
-              "tiara", "AkuAku", "rasta", "hair_yellow"}
-
-nativePos = {{1474, 1188}, {923, 986}, {564, 1120}, {128, 1315}}
-nativesNum = 4
-nativesLeft = 4
-
-cyborgNames = {loc("Artur Detour"), loc("Led Heart"), loc("Orlando Boom!"), loc("Nilarian"), 
-               loc("Steel Eye"), loc("Rusty Joe"), loc("Hatless Jerry"), loc("Gas Gargler")}
-
-cyborgsDif = {2, 2, 2, 2, 2, 2, 2, 2}
-cyborgsHealth = {100, 100, 100, 100, 100, 100, 100, 100}
-cyborgPos = {1765, 1145}
-cyborgsTeamNum = {4, 3}
-cyborgsNum = 7
-cyborgsPos = {{2893, 1717}, {2958, 1701}, {3027, 1696}, {3096, 1698},
-              {2584, 655},  {2047, 1534}, {115, 179}, {2162, 1916}}
-cyborgsDir = {"Left", "Left", "Left", "Left", "Left", "Left", "Right", "Left"}
-
-crateConsts = {}
-reactions = {}
-
-enemyPos = {4078, 195}
-
------------------------------Variables---------------------------------
-natives = {}
-origNatives = {}
-
-cyborgs = {}
-cyborg = nil
-
-gearDead = {}
-hedgeHidden = {}
-
-scene = 0
-enemyFled = "0"
-
-deployedLeader = "0"
-princessLeader = "0"
-
-startAnim = {}
-fleeAnim = {}
-finalAnim = {}
-leaderDeadAnim = {}
------------------------------Animations--------------------------------
-function EmitDenseClouds(dir)
-  local dif
-  if dir == "Left" then
-    dif = 10
-  else
-    dif = -10
-  end
-  if dir == nil then
-    dx, dy = GetGearVelocity(dense)
-    if dx < 0 then 
-      dif = 10
-    else 
-      dif = -10
-    end
-  end
-  AnimInsertStepNext({func = AnimVisualGear, args = {dense, GetX(dense) + dif, GetY(dense) + dif, vgtSteam, 0, true}, swh = false})
-  AnimInsertStepNext({func = AnimVisualGear, args = {dense, GetX(dense) + dif, GetY(dense) + dif, vgtSteam, 0, true}, swh = false})
-  AnimInsertStepNext({func = AnimVisualGear, args = {dense, GetX(dense) + dif, GetY(dense) + dif, vgtSteam, 0, true}, swh = false})
-  AnimInsertStepNext({func = AnimWait, args = {dense, 800}})
-  AnimInsertStepNext({func = AnimVisualGear, args = {dense, GetX(dense) + dif, GetY(dense) + dif, vgtSteam, 0, true}, swh = false})
-  AnimInsertStepNext({func = AnimVisualGear, args = {dense, GetX(dense) + dif, GetY(dense) + dif, vgtSteam, 0, true}, swh = false})
-  AnimInsertStepNext({func = AnimWait, args = {dense, 800}})
-  AnimInsertStepNext({func = AnimVisualGear, args = {dense, GetX(dense) + dif, GetY(dense) + dif, vgtSteam, 0, true}, swh = false})
-end
-
-function AnimationSetup()
-  table.insert(startAnim, {func = AnimWait, args = {enemy, 3000}})
-  table.insert(startAnim, {func = AnimCaption, swh = false, args = {natives[1], "The team continued their quest of finding the rest of the tribe.", 4000}})
-  table.insert(startAnim, {func = AnimCaption, swh = false, args = {natives[1], "They stumbled upon a pile of weapons, they seemed to be getting closer.", 4500}})
-  if scene == denseScene then
-    if m5DeployedNum == denseNum then
-      deployedLeader = "1"
-      SetupDenseAnimDeployed()
-    else
-      SetupDenseAnim()
-    end
-  elseif scene == waterScene then
-    if m5DeployedNum == waterNum then
-      deployedLeader = "1"
-      SetupWaterAnimDeployed()
-    else
-      SetupWaterAnim()
-    end
-  elseif scene == princessScene then
-    princessLeader = "1"
-    SetupPrincessAnim()
-  else
-    SetupCyborgAnim()
-  end
-
-  AddSkipFunction(startAnim, SkipAnim, {startAnim})
-  AddSkipFunction(fleeAnim, SkipAnim, {fleeAnim})
-  AddSkipFunction(leaderDeadAnim, SkipAnim, {leaderDeadAnim})
-end
-
-function SetupLeaderDeadAnim()
-  local gear = nil
-  if CheckCyborgsDead() then
-    return
-  end
-  for i = nativesLeft, 1, -1 do
-    if band(GetState(natives[i]), gstDrowning) == 0 then
-      gear = natives[i]
-    end
-  end
-  if gear == nil then
-    return
-  end
-  table.insert(leaderDeadAnim, {func = AnimFollowGear, args = {gear}})
-  table.insert(leaderDeadAnim, {func = AnimSay, args = {gear, "That traitor won't be killing us anymore!", SAY_THINK, 6000}})
-end
-
-function SetupDenseAnim()
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Yo, dude! Get away from our weapons!", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Dense Cloud?! What are you doing?!", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "What does it look like?", SAY_SHOUT, 3500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Are you helping the aliens?!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Lolz, I love the look on your face!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Did you really think that I'd changed?", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "But why did you betray us?!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Yo, the aliens gave me plants...medicinal plants...lots of it.", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "You never give me plants!", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Besides, why would I choose certain death?", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Do you have any idea how bad an exploding arrow hurts?", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Dude, it's unbearable!", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "You're a coward!", SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "You endangered your whole tribe, you bastard!", SAY_SHOUT, 7000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Yeah, well, for some dude to be happy, some other dude has to suffer.", SAY_SHOUT, 11000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "That's just the way it works, you know.", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "You're some piece of hypocrite junkie!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Why do you always have to call me names?", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, EmitDenseClouds, {}}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Make fun of me when I fart...", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "IT'S A SERIOUS MEDICAL CONDITION!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "You don't deserve my sacrifice!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "I won't let you kill the tribe!", SAY_SHOUT, 5000}})
-
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Dude, this is boring!", SAY_SAY, 3000}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "I ain't gonna sit around no more!", SAY_SAY, 5000}})
-  table.insert(fleeAnim, {func = AnimTurn, args = {enemy, "Right"}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Yo, escort my buttocks!", SAY_SHOUT, 3500}})
-  table.insert(fleeAnim, {func = AnimSwitchHog, args = {natives[1]}})
-  table.insert(fleeAnim, {func = AnimWait, args = {natives[1], 1}})
-  table.insert(fleeAnim, {func = AnimDisappear, swh = false, args = {enemy, 0, 0}})
-end
-
-function SetupDenseAnimDeployed()
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, EmitDenseClouds, {}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[3], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[2], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[1], enemy}}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I'm afraid I can't let you proceed!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "???", SAY_THINK, 0}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[2], "???", SAY_THINK, 0}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[3], "???", SAY_THINK, 1000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Dude, wow, you're so cute!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Did you really think I'd change?", SAY_SHOUT, 4500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I'm still with the aliens.", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimTeleportGear, args = {enemy, unpack(enemyPos)}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[1], enemy}}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "WHAT?!", SAY_THINK, 1000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[3], "But you saved me!", SAY_THINK, 2500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Haha, that was just a coincidence!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I was heading home, you see!", SAY_SHOUT, 3500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "We were your home! Your family...", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "How could you betray us?!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Yo, the aliens gave me plants...medicinal plants...lots of it.", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "You never give me plants!", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Besides, why would I choose certain death?", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Do you have any idea how bad an exploding arrow hurts?", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Dude, it's unbearable!", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "You're a coward!", SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "You endangered your whole tribe, you bastard!", SAY_SHOUT, 7000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Yeah, well, for some dude to be happy, some other dude has to suffer.", SAY_SHOUT, 11000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "That's just the way it works, you know.", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "You're some piece of hypocrite junkie!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Why do you always have to call me names?", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, EmitDenseClouds, {}}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Make fun of me when I fart...", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "IT'S A SERIOUS MEDICAL CONDITION!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "You don't deserve my sacrifice!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "I won't let you kill the tribe!", SAY_SHOUT, 5000}})
-
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Dude, this is boring!", SAY_SAY, 3000}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "I ain't gonna sit around no more!", SAY_SAY, 5000}})
-  table.insert(fleeAnim, {func = AnimTurn, args = {enemy, "Right"}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Yo, escort my buttocks!", SAY_SHOUT, 3500}})
-  table.insert(fleeAnim, {func = AnimSwitchHog, args = {natives[1]}})
-  table.insert(fleeAnim, {func = AnimWait, args = {natives[1], 1}})
-  table.insert(fleeAnim, {func = AnimDisappear, swh = false, args = {enemy, 0, 0}})
-end
-
-function SetupWaterAnim()
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Stay there, comrades!", SAY_SHOUT, 2500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Come closer and die...burp!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Fiery Water?! Are you drunk again?", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Drunk with power, perhappss!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "The power of love! No, wait, the power of the aliens!", SAY_SHOUT, 7500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "We trusted you, you fool!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Why do you keep betraying us?", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Why, why, why, why!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I grew sick of the oppression! I brock free!", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "What oppression?! You were the most unoppressed member of the tribe!", SAY_SHOUT, 10000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "The opression of the elders, of course!", SAY_SHOUT, 6500}})
-  if m5DeployedNum == leaksNum then
-    table.insert(startAnim, {func = AnimSay, args = {enemy, "You should know this more than anyone, Leaks!", SAY_SHOUT, 7000}})
-  elseif m5LeaksDead == 1 then
-    table.insert(startAnim, {func = AnimSay, args = {enemy, "Just look at Leaks, may he rest in peace!", SAY_SHOUT, 6500}})
-  end
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "We, the youth, have to constantly prove our value...", SAY_SHOUT, 7000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "We work and work until we sweat blood...", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "We risk our lives going through challenges...", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "All this to please our beloved 'elders'...hick...", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "And what do they do in the meantime? NOTHING!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "All they do is sit around and judge us!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "You have never worked a bit in your life!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "All *you* do is take long walks when everyone else works.", SAY_SHOUT, 9000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Anyway, the aliens accept me for who I am.", SAY_SHOUT, 7000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "We won't accept you destroying our village!", SAY_SHOUT, 7000}})
-
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Argh, the borrdommm!", SAY_SAY, 3000}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "I have more important things to do!", SAY_SAY, 5000}})
-  table.insert(fleeAnim, {func = AnimTurn, args = {enemy, "Right"}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Comrades! Sail me away!", SAY_SHOUT, 3500}})
-  table.insert(fleeAnim, {func = AnimSwitchHog, args = {natives[1]}})
-  table.insert(fleeAnim, {func = AnimWait, args = {natives[1], 1}})
-  table.insert(fleeAnim, {func = AnimDisappear, swh = false, args = {enemy, 0, 0}})
-end
-
-function SetupWaterAnimDeployed()
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[3], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[2], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[1], enemy}}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Stop, comrades!", SAY_SHOUT, 2500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I cannot let you go any farther...burp!", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Fiery Water?! Are you drunk again?", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Drunk with power, perhappss!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "The power of love! No, wait, the power of the aliens!", SAY_SHOUT, 7500}})
-  table.insert(startAnim, {func = AnimTeleportGear, args = {enemy, unpack(enemyPos)}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[3], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[2], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[1], enemy}}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "We trusted you, you fool!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Why do you keep betraying us?", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Why, why, why, why!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I grew sick of the oppression! I brock free!", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "What oppression?! You were the most unoppressed member of the tribe!", SAY_SHOUT, 10000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "The opression of the elders, of course!", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Just look at Leaks, may he rest in peace!", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "We, the youth, have to constantly prove our value...", SAY_SHOUT, 7000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "We work and work until we sweat blood...", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "We risk our lives going through challenges...", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "All this to please our beloved 'elders'...hick...", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "And what do they do in the meantime? NOTHING!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "All they do is sit around and judge us!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "You have never worked a bit in your life!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "All *you* do is take long walks when everyone else works.", SAY_SHOUT, 9000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Anyway, the aliens accept me for who I am.", SAY_SHOUT, 7000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "We won't accept you destroying our village!", SAY_SHOUT, 7000}})
-
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Argh, the borrdommm!", SAY_SAY, 3000}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "I have more important things to do!", SAY_SAY, 5000}})
-  table.insert(fleeAnim, {func = AnimTurn, args = {enemy, "Right"}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Comrades! Sail me away!", SAY_SHOUT, 3500}})
-  table.insert(fleeAnim, {func = AnimSwitchHog, args = {natives[1]}})
-  table.insert(fleeAnim, {func = AnimWait, args = {natives[1], 1}})
-  table.insert(fleeAnim, {func = AnimDisappear, swh = false, args = {enemy, 0, 0}})
-end
-
-function SetupPrincessAnim()
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[3], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[2], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[1], enemy}}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Oh, my! I forgot something!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "We need to go back!", SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "What could you possibly forget in that cage?", SAY_SHOUT, 7000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I don't like your tone! You're hurting me!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "I'm terribly sorry!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "What is it that you forgot?", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Uhmm, it's...uhm...my ring!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "It's precious to me!", SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "We don't have time for that now!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "We have to find our folk!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "But I want my sandals!", SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Sandals?! I thought you left your ring!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "All right, you got me...", SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Got you? You're acting weird...", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "You just can't let it go, can you!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "All right, I'll admit it!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Admit what?", SAY_SHOUT, 2000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "You give me no choice!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I can't let you go further because...", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I'm the spy! I've been giving you out!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimTeleportGear, args = {enemy, unpack(enemyPos)}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[3], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[2], enemy}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {enemy, CondNeedToTurn, {natives[1], enemy}}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "But...they kidnapped you!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Oh, that. We were just having fun!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "It's an ancient ritual of theirs.", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Why did you do this?", SAY_SHOUT, 4000}})
-  if m5ChiefDead == 1 then
-    table.insert(startAnim, {func = AnimSay, args = {natives[1], "Why did you kill your father?", SAY_SHOUT, 5000}})
-  end
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Do you have any idea what it's like in the village for a woman?", SAY_SHOUT, 10000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "How would you like being discriminated against?", SAY_SHOUT, 7000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Not being able to fight, hunt...", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Gathering fruits all day long...", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Doing stuff a monkey could do...", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Always being considered weak and fragile...", SAY_SHOUT, 6000}})
-  if m5DeployedNum == girlNum then
-    table.insert(startAnim, {func = AnimSay, args = {natives[1], "In case you haven't noticed, I'm a woman, too!", SAY_SHOUT, 8000}})
-    table.insert(startAnim, {func = AnimSay, args = {enemy, "Yes, but you're...different!", SAY_SHOUT, 6000}})
-    table.insert(startAnim, {func = AnimSay, args = {natives[1], "Of course I am...", SAY_SHOUT, 3000}})
-  end
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "The aliens respect me, even worship me!", SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I'm living a dream!", SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Well, you're about to wake up!", SAY_SHOUT, 5000}})
-
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Hmm...it's going slower than expected.", SAY_SAY, 5000}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "I am going to leave the kids play by themselves.", SAY_SAY, 6000}})
-  table.insert(fleeAnim, {func = AnimTurn, args = {enemy, "Right"}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Alien! I wish to be moved!", SAY_SHOUT, 4000}})
-  table.insert(fleeAnim, {func = AnimSwitchHog, args = {natives[1]}})
-  table.insert(fleeAnim, {func = AnimWait, args = {natives[1], 1}})
-  table.insert(fleeAnim, {func = AnimDisappear, swh = false, args = {enemy, 0, 0}})
-end
-
-function SetupCyborgAnim()
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Stop right there, puny worms!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Stay away from our weapons!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "We come in peace! Just let our friends go!", SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I'm afraid we cannot afford that...", SAY_SHOUT, 4500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "You see, hedgehog spikes are very very valuable.", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Very valuable, haha!", SAY_SHOUT, 3500}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Don't you dare harm our tribe!", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "It's a shame, really!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "I regret to end your little odyssey.", SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "It was fun to watch...", SAY_SHOUT, 3500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "The way you handled your little internal conflicts...", SAY_SHOUT, 6500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "Did you really think that we needed the help of one of you?", SAY_SHOUT, 7500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "You should have known that we don't rely on meatbags!", SAY_SHOUT, 7500}})
-  table.insert(startAnim, {func = AnimSay, args = {enemy, "It was fun to watch though...", SAY_SHOUT, 3500}})
-  if m5Choice == choiceEliminate then
-    table.insert(startAnim, {func = AnimSay, args = {enemy, "Heck, you even executed one of your own!", SAY_SHOUT, 6000}})
-  end
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "It was all a trick?!", SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "Some sick game of yours?!", SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {natives[1], "We won't let you hurt any more of us!", SAY_SHOUT, 6000}})
-
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Entered boredom phase! Discrepancies detected...", SAY_SAY, 5000}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Initiate escape wish!", SAY_SAY, 6000}})
-  table.insert(fleeAnim, {func = AnimTurn, args = {enemy, "Right"}})
-  table.insert(fleeAnim, {func = AnimSay, args = {enemy, "Running displacement algorithm...", SAY_SHOUT, 4000}})
-  table.insert(fleeAnim, {func = AnimSwitchHog, args = {natives[1]}})
-  table.insert(fleeAnim, {func = AnimWait, args = {natives[1], 1}})
-  table.insert(fleeAnim, {func = AnimDisappear, swh = false, args = {enemy, 0, 0}})
-end
-
-function SetupFinalAnim()
-  local found = 0
-  local gears = {}
-  for i = nativesLeft, 1, -1 do
-    if band(GetState(natives[i]), gstDrowning) == 0 then
-      found = found + 1
-      gears[found] = natives[i]
-    end
-  end
-  if found == 0 then
-    return
-  else
-    for i = 1, found do
-      table.insert(finalAnim, {func = AnimCustomFunction, args = {gears[1], CondNeedToTurn, {cyborg, gears[i]}}})
-    end
-    table.insert(finalAnim, {func = AnimSay, args = {cyborg, "Nice work, meatbags!", SAY_SAY, 3000}})
-    table.insert(finalAnim, {func = AnimSay, args = {cyborg, "You're on your way to freeing your tribe!", SAY_SAY, 5500}})
-    table.insert(finalAnim, {func = AnimSay, args = {gears[1], "Do you know where they are?", SAY_SAY, 4000}})
-    table.insert(finalAnim, {func = AnimSay, args = {gears[found], "We need to hurry!", SAY_SAY, 3000}})
-    table.insert(finalAnim, {func = AnimSay, args = {cyborg, "Haha! Come!", SAY_SAY, 2000}})
-    table.insert(finalAnim, {func = AnimJump, args = {cyborg, "high"}})
-    table.insert(finalAnim, {func = AnimDisappear, args = {cyborg, GetGearPosition(cyborg)}})
-    for i = 1, found do
-      table.insert(finalAnim, {func = HideHedge, swh = false, args = {gears[i]}})
-    end
-    table.insert(finalAnim, {func = SetState, swh = false, args = {cyborg, gstInvisible}})
-  end
-end
-
-
---------------------------Anim skip functions--------------------------
-function AfterStartAnim()
-  SetGearMessage(natives[1], 0)
-  ShowMission("Long Live The Queen", "Closing in", "Defeat the enemy!|The leader seems scared, he will probably flee.", 1, 0)
-  SetHealth(SpawnHealthCrate(2207, 44), 25)
-  SetHealth(SpawnHealthCrate(519, 1519), 25)
-  SetHealth(SpawnHealthCrate(826, 895), 25)
-  SpawnUtilityCrate(701, 1046, amGirder, 3)
-  TurnTimeLeft = TurnTime
-end
-
-function SkipAnim(anim)
-  if anim == startAnim then
-    SetGearPosition(enemy, unpack(enemyPos))
-  end
-  if GetHogTeamName(CurrentHedgehog) ~= loc("Natives") then
-    TurnTimeLeft = 0
-  end
-  AnimWait(enemy, 1)
-end
-
-function AfterFleeAnim()
-  SetHealth(SpawnHealthCrate(130, 455), 25)
-  SetHealth(SpawnHealthCrate(2087, 50), 25)
-  SetHealth(SpawnHealthCrate(2143, 54), 25)
-  SetHealth(SpawnHealthCrate(70, 1308), 25)
-  SetGearMessage(CurrentHedgehog, 0)
-  HideHedge(enemy)
-  ShowMission("Long Live The Queen", "Coward", "The leader escaped. Defeat the rest of the aliens!", 1, 0)
-  TurnTimeLeft = TurnTime
-end
-
-function AfterLeaderDeadAnim()
-  SetHealth(SpawnHealthCrate(130, 455), 25)
-  SetHealth(SpawnHealthCrate(2087, 50), 25)
-  SetHealth(SpawnHealthCrate(2143, 54), 25)
-  SetHealth(SpawnHealthCrate(70, 1308), 25)
-  ShowMission("Long Live The Queen", "Bullseye", "Good Job! Defeat the rest of the aliens!", 1, 0)
-  TurnTimeLeft = 0
-end
------------------------------Events------------------------------------
-function CheckTurnsOver()
-  return TotalRounds > 6
-end
-
-function DoTurnsOver()
-  SetGearMessage(CurrentHedgehog, 0)
-  enemyFled = "1"
-  AddAnim(fleeAnim)
-  AddFunction({func = AfterFleeAnim, args = {}})
-  RemoveEventFunc(CheckGearDead, {enemy})
-end
-
-function CheckNativesDead()
-  return nativesLeft == 0
-end
-
-function DoNativesDead()
-  RemoveEventFunc(CheckTurnsOver)
-  RemoveEventFunc(CheckGearDead)
-  RemoveEventFunc(CheckCyborgsDead)
-  AddCaption("...and the cyborgs took over the island.")
-  TurnTimeLeft = 0
-end
-
-function CheckCyborgsDead()
-  return (cyborgsLeft == 0 and (gearDead[enemy] == true or enemyFled == "1"))
-end
-
-function KillEnemy()
-  if enemyFled == "1" then
-    ParseCommand("teamgone " .. loc("Leaderbot"))
-  end
-  ParseCommand("teamgone " .. loc("011101001"))
-  TurnTimeLeft = 0
-end
-
-function DoCyborgsDead()
-  SaveCampaignVariables()
-  RestoreHedge(cyborg)
-  PlaceGirder(3292, 922, 4)
-  SetGearPosition(cyborg, 3290, 902)
-  SetupFinalAnim()
-  AddAnim(finalAnim)
-  AddFunction({func = KillEnemy, args = {}})
-end
-
-function DoLeaderDead()
-  leaderDead = true
-  SetGearMessage(CurrentHedgehog, 0)
-  SetupLeaderDeadAnim()
-  AddAnim(leaderDeadAnim)
-  AddFunction({func = AfterLeaderDeadAnim, args = {}})
-  RemoveEventFunc(CheckTurnsOver)
-end
-
-function CheckGearsDead(gearList)
-  for i = 1, # gearList do
-    if gearDead[gearList[i]] ~= true then
-      return false
-    end
-  end
-  return true
-end
-
-function CheckGearDead(gear)
-  return gearDead[gear]
-end
-
------------------------------Misc--------------------------------------
-function HideHedge(hedge)
-  if hedgeHidden[hedge] ~= true then
-    HideHog(hedge)
-    hedgeHidden[hedge] = true
-  end
-end
-
-function RestoreHedge(hedge)
-  if hedgeHidden[hedge] == true then
-    RestoreHog(hedge)
-    hedgeHidden[hedge] = false
-  end
-end
-
-function GetVariables()
-  progress = tonumber(GetCampaignVar("Progress"))
-  m5DeployedNum = tonumber(GetCampaignVar("M5DeployedNum"))
-  m2Choice = tonumber(GetCampaignVar("M2Choice"))
-  m5Choice = tonumber(GetCampaignVar("M5Choice"))
-  m2DenseDead = tonumber(GetCampaignVar("M2DenseDead"))
-  m4DenseDead = tonumber(GetCampaignVar("M4DenseDead"))
-  m5DenseDead = tonumber(GetCampaignVar("M5DenseDead"))
-  m4LeaksDead = tonumber(GetCampaignVar("M4LeaksDead"))
-  m5LeaksDead = tonumber(GetCampaignVar("M5LeaksDead"))
-  m4ChiefDead = tonumber(GetCampaignVar("M4ChiefDead"))
-  m5ChiefDead = tonumber(GetCampaignVar("M5ChiefDead"))
-  m4WaterDead = tonumber(GetCampaignVar("M4WaterDead"))
-  m5WaterDead = tonumber(GetCampaignVar("M5WaterDead"))
-  m4BuffaloDead = tonumber(GetCampaignVar("M4BuffaloDead"))
-  m5BuffaloDead = tonumber(GetCampaignVar("M5BuffaloDead"))
-  m5WiseDead = tonumber(GetCampaignVar("M5WiseDead"))
-  m5GirlDead = tonumber(GetCampaignVar("M5GirlDead"))
-end
-
-function SaveCampaignVariables()
-  for i = 1, 4 do
-    if gearDead[origNatives[i]] ~= true then
-      SaveCampaignVar(nativeSaveNames[i], "0")
-    else
-      SaveCampaignVar(nativeSaveNames[i], "1")
-    end
-  end
-
-  SaveCampaignVar("M8DeployedLeader", deployedLeader)
-  SaveCampaignVar("M8PrincessLeader", princessLeader)
-  SaveCampaignVar("M8EnemyFled", enemyFled)
-  SaveCampaignVar("M8Scene", "" .. scene)
-  if progress and progress<8 then
-    SaveCampaignVar("Progress", "8")
-  end
-end
-
-function SetupPlace()
-  HideHedge(cyborg)
-  SetHogHat(natives[1], nativeHats[m5DeployedNum])
-  SetHogName(natives[1], nativeNames[m5DeployedNum])
-
-  if m5DeployedNum == denseNum then
-    dense = natives[1]
-  else
-    dense = enemy
-  end
-
-  if m2Choice == choiceAccepted and m5Choice ~= choiceEliminate then
-    scene = denseScene
-    SetHogHat(enemy, nativeHats[denseNum])
-    SetHogName(enemy, nativeNames[denseNum])
-    dense = enemy
-  elseif m2Choice == choiceAccepted then
-    scene = cyborgScene
-    SetHogHat(enemy, "cyborg2")
-    SetHogName(enemy, loc("Nancy Screw"))
-  elseif m5Choice == choiceEliminate then
-    scene = princessScene
-    SetHogHat(enemy, "tiara")
-    SetHogName(enemy, loc("Fell From Heaven"))
-  else
-    scene = waterScene
-    SetHogHat(enemy, nativeHats[waterNum])
-    SetHogName(enemy, nativeNames[waterNum])
-  end
-  for i = 1, 4 do 
-    if GetHogName(natives[i]) == GetHogName(enemy) then
-      AnimSetGearPosition(enemy, GetGearPosition(natives[i]))
-      DeleteGear(natives[i])
-      DeleteGear(cyborgs[cyborgsLeft])
-    end
-  end
-
-  SpawnAmmoCrate(34, 395, amBee, 2)
-  SpawnAmmoCrate(33, 374, amRCPlane, 1)
-  SpawnAmmoCrate(74, 393, amAirAttack, 3)
-  SpawnAmmoCrate(1313, 1481, amBazooka, 8)
-  SpawnAmmoCrate(80, 360, amSniperRifle, 4)
-  SpawnAmmoCrate(1037, 1494, amShotgun, 7)
-  SpawnAmmoCrate(1037, 1472, amMolotov, 3)
-  SpawnAmmoCrate(1146, 1503, amMortar, 8)
-
-  SpawnUtilityCrate(1147, 1431, amPortalGun, 2)
-  SpawnUtilityCrate(1219, 1542, amRope, 5)
-  SpawnUtilityCrate(1259, 1501, amJetpack, 2)
-end
-
-function SetupEvents()
-  AddNewEvent(CheckNativesDead, {}, DoNativesDead, {}, 0)
-  AddNewEvent(CheckGearDead, {enemy}, DoLeaderDead, {}, 0)
-  AddNewEvent(CheckTurnsOver, {}, DoTurnsOver, {}, 0)
-  AddNewEvent(CheckCyborgsDead, {}, DoCyborgsDead, {}, 0)
-end
-
-function SetupAmmo()
-  AddAmmo(natives[1], amPickHammer, 2)
-  AddAmmo(natives[1], amBazooka, 0)
-  AddAmmo(natives[1], amGrenade, 0)
-  AddAmmo(natives[1], amShotgun, 0)
-  AddAmmo(natives[1], amAirStrike, 0)
-  AddAmmo(natives[1], amMolotov, 0)
-end
-
-function AddHogs()
-	AddTeam(loc("Natives"), 29439, "Bone", "Island", "HillBilly", "cm_birdy")
-  for i = 7, 9 do
-    natives[i-6] = AddHog(nativeNames[i], 0, 100, nativeHats[i])
-    origNatives[i-6] = natives[i-6]
-  end
-  natives[4] = AddHog(loc("Fell From Heaven"), 0, 133, "tiara")
-  origNatives[4] = natives[4]
-  nativesLeft = nativesNum
-
-  AddTeam(loc("Beep Loopers"), 14483456, "ring", "UFO", "Robot", "cm_star")
-  for i = 1, cyborgsTeamNum[1] do
-    cyborgs[i] = AddHog(cyborgNames[i], cyborgsDif[i], cyborgsHealth[i], "cyborg2")
-  end
-
-  AddTeam(loc("Corporationals"), 14483456, "ring", "UFO", "Robot", "cm_star")
-  for i = cyborgsTeamNum[1] + 1, cyborgsNum do
-    cyborgs[i] = AddHog(cyborgNames[i], cyborgsDif[i], cyborgsHealth[i], "cyborg2")
-  end
-  cyborgsLeft = cyborgsTeamNum[1] + cyborgsTeamNum[2]
-
-  AddTeam(loc("Leaderbot"), 14483456, "ring", "UFO", "Robot", "cm_star")
-  enemy = AddHog(loc("Name"), 2, 200, "cyborg1")
-
-  AddTeam(loc("011101001"), 14483456, "ring", "UFO", "Robot", "cm_star")
-  cyborg = AddHog(loc("Unit 334a$7%;.*"), 0, 200, "cyborg1")
-
-  SetGearPosition(cyborg, 0, 0)
-
-  for i = 1, nativesNum do
-    AnimSetGearPosition(natives[i], unpack(nativePos[i]))
-  end
-
-  AnimSetGearPosition(enemy, unpack(enemyPos))
-  AnimTurn(enemy, "Left")
-
-  for i = 1, cyborgsNum do
-    AnimSetGearPosition(cyborgs[i], unpack(cyborgsPos[i]))
-    AnimTurn(cyborgs[i], cyborgsDir[i])
-  end
-end
-
-function CondNeedToTurn(hog1, hog2)
-  xl, xd = GetX(hog1), GetX(hog2)
-  if xl > xd then
-    AnimInsertStepNext({func = AnimTurn, args = {hog1, "Left"}})
-    AnimInsertStepNext({func = AnimTurn, args = {hog2, "Right"}})
-  elseif xl < xd then
-    AnimInsertStepNext({func = AnimTurn, args = {hog2, "Left"}})
-    AnimInsertStepNext({func = AnimTurn, args = {hog1, "Right"}})
-  end
-end
-
------------------------------Main Functions----------------------------
-
-function onGameInit()
-	Seed = 0
-	GameFlags = gfDisableGirders + gfDisableLandObjects
-	TurnTime = 60000 
-	CaseFreq = 0
-	MinesNum = 0
-	MinesTime = 3000
-	Explosives = 0
-	Delay = 10 
-  MapGen = 2
-	Theme = "Hell"
-  SuddenDeathTurns = 20
-
-	for i = 1, #map do
-		ParseCommand('draw ' .. map[i])
-	end
-
-  GetVariables()
-  AnimInit()
-  AddHogs()
-end
-
-function onGameStart()
-  SetupAmmo()
-  SetupPlace()
-  AnimationSetup()
-  SetupEvents()
-  AddAnim(startAnim)
-  AddFunction({func = AfterStartAnim, args = {}})
-end
-
-function onGameTick()
-  AnimUnWait()
-  if ShowAnimation() == false then
-    return
-  end
-  ExecuteAfterAnimations()
-  CheckEvents()
-end
-
-function onGearDelete(gear)
-  local toRemove = nil
-  gearDead[gear] = true
-  if GetGearType(gear) == gtHedgehog then
-    if GetHogTeamName(gear) == loc("Beep Loopers") or GetHogTeamName(gear) == loc("Corporationals") then
-      cyborgsLeft = cyborgsLeft - 1
-    elseif GetHogTeamName(gear) == loc("Natives") then
-      for i = 1, nativesLeft do
-        if natives[i] == gear then
-          toRemove = i
-        end
-      end
-      table.remove(natives, toRemove)
-      nativesLeft = nativesLeft - 1
-    end
-  end
-end
-
-function onAmmoStoreInit()
-  SetAmmo(amBaseballBat, 9, 0, 0, 0)
-  SetAmmo(amFirePunch, 9, 0, 0, 0)
-  SetAmmo(amDEagle, 9, 0, 0, 0)
-  SetAmmo(amSkip, 9, 0, 0, 0)
-  SetAmmo(amSwitch, 9, 0, 0, 0)
-  SetAmmo(amBazooka, 9, 0, 0, 0)
-  SetAmmo(amGrenade, 9, 0, 0, 0)
-  SetAmmo(amAirStrike, 1, 0, 0, 0)
-  SetAmmo(amMolotov, 5, 0, 0, 0)
-  SetAmmo(amShotgun, 9, 0, 0, 0)
-end
-
-function onNewTurn()
-  if AnimInProgress() then
-    TurnTimeLeft = -1
-    return
-  end
-  if GetHogTeamName(CurrentHedgehog) == loc("011101001") then
-    TurnTimeLeft = 0
-  end
-end
-
-function onPrecise()
-  if GameTime > 2500 and AnimInProgress() then
-    SetAnimSkip(true)
---  else
---    DeleteGear(cyborgs[1])
---    table.remove(cyborgs, 1)
---    if cyborgsLeft == 0 then
---      DeleteGear(enemy)
---    end
-  end
-end