share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/enemy.lua
branchwebgl
changeset 9521 8054d9d775fd
parent 9282 92af50454cf2
parent 9519 b8b5c82eb61b
child 9950 2759212a27de
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/enemy.lua	Fri Oct 11 11:55:31 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,666 +0,0 @@
-HedgewarsScriptLoad("/Scripts/Locale.lua")
-HedgewarsScriptLoad("/Scripts/Animate.lua")
-
-
---------------------------------------------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
-ramonNum = 8
-spikyNum = 9
-
-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")
-              }
-
-nativeHats = {"Rambo", "RobinHood", "pirate_jack", "zoo_Bunny", "IndianChief",
-              "tiara", "AkuAku", "rasta", "hair_yellow"}
-
-nativePos = {{1259, 120}, {2378, 796}, {424, 1299}, {3322, 260}, {1022, 1550}}
-nativeDir = {"Right", "Left", "Right", "Left", "Right"}
-
-cannibalNames = {loc("Honest Lee"), loc("Vegan Jack"), loc("Sirius Lee"),
-                 loc("Brutal Lily")}
-cannibalPos = {{162, 266}, {2159, 1517}, {3311, 1621}, {1180, 1560}}
-cannibalDir = {"Right", "Left", "Left", "Right"}
-cannibalsNum = 4
-
-playersDir = {"Right", "Left", "Right", "Left", "Right", "Right", "Left", "Left", "Right"}
-playersAntiDir = {"Left", "Right", "Left", "Right", "Left", "Left", "Right", "Right", "Left"}
-
-cyborgNames = {loc("Smith 0.97"), loc("Smith 0.98"), loc("Smith 0.99a"),
-               loc("Smith 0.99b"), loc("Smith 0.99f"), loc("Smith 1.0")}
-cyborgPos = {{2162, 20}, {2458, 564}, {542, 1133}, {3334, 1427}}
-cyborgDir = "Right"
-cyborgsNum = 6
-cyborgsPos = {{1490, 330}, {1737, 1005}, {2972, 922}, {1341, 1571},
-              {751, 543}, {3889, 907}}
-cyborgsDir = {"Right", "Right", "Left", "Right", "Right", "Left"}
-
-leaderPos = {3474, 151}
-leaderDir = "Left"
-
------------------------------Variables---------------------------------
-natives = {}
-origNatives = {}
-
-cyborgs = {}
-cyborg = nil
-
-cannibals = {}
-players = {}
-leader = nil
-
-gearDead = {}
-hedgeHidden = {}
-
-startAnim = {}
-finalAnim = {}
------------------------------Animations--------------------------------
-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
-
-function CondNeedToTurn2(hog1, hog2)
-  xl, xd = GetX(hog1), GetX(hog2)
-  if xl > xd then
-    AnimTurn(hog1, "Left")
-    AnimTurn(hog2, "Right")
-  elseif xl < xd then
-    AnimTurn(hog2, "Left")
-    AnimTurn(hog1, "Right")
-  end
-end
-
-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 RestoreNatives(cgi)
-  for i = 1, playersNum do
-    RestoreHedge(players[i])
-    AnimOutOfNowhere(players[i], GetGearPosition(players[i]))
-  end
-end
-
-function AnimationSetup()
-  SetupCyborgStartAnim()
-  SetupPeopleStartAnim()
-  SetupEnemyStartAnim()
-  AddSkipFunction(startAnim, SkipStartAnim, {})
-end
-
-function SetupCyborgStartAnim()
-  table.insert(startAnim, {func = AnimWait, args = {cyborg, 3000}})
-  table.insert(startAnim, {func = AnimTurn, args = {cyborg, "Left"}})
-  table.insert(startAnim, {func = AnimWait, args = {cyborg, 800}})
-  table.insert(startAnim, {func = AnimTurn, args = {cyborg, "Right"}})
-  table.insert(startAnim, {func = AnimWait, args = {cyborg, 800}})
-  table.insert(startAnim, {func = AnimTurn, args = {cyborg, "Left"}})
-  table.insert(startAnim, {func = AnimWait, args = {cyborg, 800}})
-  table.insert(startAnim, {func = AnimTeleportGear, args = {cyborg, unpack(cyborgPos[2])}})
-  table.insert(startAnim, {func = AnimWait, args = {cyborg, 800}})
-  table.insert(startAnim, {func = AnimTurn, args = {cyborg, "Right"}})
-  table.insert(startAnim, {func = AnimWait, args = {cyborg, 800}})
-  table.insert(startAnim, {func = AnimTurn, args = {cyborg, "Left"}})
-  table.insert(startAnim, {func = AnimWait, args = {cyborg, 800}})
-  table.insert(startAnim, {func = AnimTeleportGear, args = {cyborg, unpack(cyborgPos[3])}})
-  table.insert(startAnim, {func = AnimWait, args = {cyborg, 1800}})
-  table.insert(startAnim, {func = AnimTeleportGear, args = {cyborg, unpack(cyborgPos[4])}})
-  table.insert(startAnim, {func = AnimWait, args = {cyborg, 800}})
-  table.insert(startAnim, {func = AnimSay, args = {cyborg, loc("Everything looks OK..."), SAY_THINK, 2500}})
-  table.insert(startAnim, {func = AnimSay, args = {cyborg, loc("This will be fun!"), SAY_THINK, 2500}})
-  table.insert(startAnim, {func = AnimJump, args = {cyborg, "high"}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {cyborg, RestoreNatives, {true}}})
-  table.insert(startAnim, {func = AnimSay, args = {cyborg, loc("HAHA!"), SAY_SHOUT, 2000}})
-  table.insert(startAnim, {func = AnimSwitchHog, args = {players[1]}})
-  table.insert(startAnim, {func = AnimDisappear, swh = false, args = {cyborg, unpack(cyborgPos[4])}})
-  table.insert(startAnim, {func = HideHedge, swh = false, args = {cyborg}})
-end
-
-function SetupPeopleStartAnim()
-  for i = 1, playersNum do
-    table.insert(startAnim, {func = AnimTurn, swh = false, args = {players[i], playersAntiDir[i]}})
-  end
-  table.insert(startAnim, {func = AnimWait, args = {players[1], 800}})
-  for i = 1, playersNum do
-    table.insert(startAnim, {func = AnimTurn, swh = false, args = {players[i], playersDir[i]}})
-  end
-  table.insert(startAnim, {func = AnimWait, args = {players[1], 800}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("What is this place?"), SAY_SHOUT, 2500}})
-  if m5LeaksDead == 1 then
-    table.insert(startAnim, {func = AnimSay, args = {players[1], loc("And how am I alive?!"), SAY_SAY, 3000}})
-  end
-  table.insert(startAnim, {func = AnimCustomFunction, args = {players[1], CondNeedToTurn, {players[1], players[2]}}})
-  table.insert(startAnim, {func = AnimSay, args = {players[2], loc("It must be the cyborgs again!"), SAY_SAY, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[3], loc("Looks like the whole world is falling apart!"), SAY_SAY, 6000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("Look out! We're surrounded by cannibals!"), SAY_SHOUT, 6000}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {players[4], CondNeedToTurn, {players[4], cannibals[1]}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {players[4], CondNeedToTurn, {players[1], cannibals[1]}}})
-  table.insert(startAnim, {func = AnimSay, args = {players[4], loc("Cannibals?! You're the cannibals!"), SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("WHAT?! You're the ones attacking us!"), SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[4], loc("You have kidnapped our whole tribe!"), SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("You've been assaulting us, we have been just defending ourselves!"), SAY_SHOUT, 8000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("I can't believe this!"), SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("Have we ever attacked you first?"), SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[4], loc("Yes!"), SAY_SHOUT, 2000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("When?"), SAY_SHOUT, 2000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[4], loc("Uhmm...ok no."), SAY_SHOUT, 2000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("But you're cannibals. It's what you do."), SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("Again with the 'cannibals' thing!"), SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("Where do you get that?!"), SAY_SHOUT, 3000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[4], loc("Everyone knows this."), SAY_SHOUT, 2500}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("I didn't until about a month ago."), SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[4], loc("Hmmm...actually...I didn't either."), SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("About a month ago, a cyborg came and told us that you're the cannibals!"), SAY_SHOUT, 8000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("A cy-what?"), SAY_SHOUT, 2000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("Cyborg. It's what the aliens call themselves."), SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("They told us to wear these clothes. They said that this is the newest trend."), SAY_SHOUT, 8000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("They've been manipulating us all this time!"), SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("They must be trying to weaken us!"), SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("We have to unite and defeat those cylergs!"), SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSay, args = {cannibals[1], loc("We can't let them take over our little island!"), SAY_SHOUT, 5000}})
-end
-
-function RestoreCyborgs(cgi)
-  if cyborgsRestored == true then
-    return
-  end
-  for i = 1, cyborgsNum do
-    RestoreHedge(cyborgs[i])
-    if cgi == true then
-      AnimOutOfNowhere(cyborgs[i], unpack(cyborgsPos[i]))
-    end
-  end
-  RestoreHedge(leader)
-  AnimOutOfNowhere(leader, unpack(leaderPos))
-  cyborgsRestored = true
-end
-
-function SetupEnemyStartAnim()
-  local gear
-  table.insert(startAnim, {func = AnimCustomFunction, args = {cannibals[1], RestoreCyborgs, {true}}})
-  if m8EnemyFled == 1 then
-    gear = leader
-  else
-    gear = cyborgs[2]
-  end
-  table.insert(startAnim, {func = AnimCustomFunction, args = {players[1], CondNeedToTurn, {players[4], gear}}})
-  table.insert(startAnim, {func = AnimCustomFunction, args = {players[1], CondNeedToTurn, {players[1], gear}}})
-  table.insert(startAnim, {func = AnimSay, args = {gear, loc("You have finally figured it out!"), SAY_SHOUT, 4500}})
-  table.insert(startAnim, {func = AnimSay, args = {gear, loc("You meatbags are pretty slow, you know!"), SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("Why do you want to take over our island?"), SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {gear, loc("Do you have any idea how valuable grass is?"), SAY_SHOUT, 5500}})
-  table.insert(startAnim, {func = AnimSay, args = {gear, loc("This island is the only place left on Earth with grass on it!"), SAY_SHOUT, 7000}})
-  table.insert(startAnim, {func = AnimSay, args = {gear, loc("It's worth more than wood!"), SAY_SHOUT, 4000}})
-  table.insert(startAnim, {func = AnimSay, args = {gear, loc("That makes it almost invaluable!"), SAY_SHOUT, 4500}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("We have nowhere else to live!"), SAY_SHOUT, 4500}})
-  table.insert(startAnim, {func = AnimSay, args = {gear, loc("That's not our problem!"), SAY_SHOUT, 4500}})
-  table.insert(startAnim, {func = AnimSay, args = {players[1], loc("We'll give you a problem then!"), SAY_SHOUT, 5000}})
-  table.insert(startAnim, {func = AnimSwitchHog, args = {gear}})
-end
-
-function SetupFinalAnim()
-  finalAnim = {
-    {func = AnimGearWait, args = {cyborg, 1000}},
-    {func = AnimSay, args = {cyborg, loc("Nicely done, meatbags!"), SAY_SAY, 3000}},
-    {func = AnimSay, args = {cyborg, loc("You have won the game by proving true cooperative skills!"), SAY_SAY, 7000}},
-    {func = AnimSay, args = {cyborg, loc("You have proven yourselves worthy!"), SAY_SAY, 4000}},
-    {func = AnimSay, args = {players[1], loc("Game? Was this a game to you?!"), SAY_SAY, 4000}},
-    {func = AnimSay, args = {cyborg, loc("Well, yes. This was a cyborg television show."), SAY_SAY, 5500}},
-    {func = AnimSay, args = {cyborg, loc("It is called 'Hogs of Steel'."), SAY_SAY, 4000}},
-    {func = AnimSay, args = {players[1], loc("Are you saying that many of us have died for your entertainment?"), SAY_SAY, 8000}},
-    {func = AnimSay, args = {players[1], loc("Our tribe, our beautiful island!"), SAY_SAY, 4000}},
-    {func = AnimSay, args = {players[1], loc("All gone...everything!"), SAY_SAY, 3000}},
-    {func = AnimSay, args = {cyborg, loc("But the ones alive are stronger in their heart!"), SAY_SAY, 6000}},
-    {func = AnimSay, args = {cyborg, loc("Just kidding, none of you have died!"), SAY_SAY, 5000}},
-    {func = AnimSay, args = {cyborg, loc("I mean, none of you ceased to live."), SAY_SAY, 5000}},
-    {func = AnimSay, args = {cyborg, loc("You'll see what I mean!"), SAY_SAY, 4000}},
-    {func = AnimSay, args = {cyborg, loc("They are all waiting back in the village, haha."), SAY_SAY, 7000}},
-    {func = AnimSay, args = {players[1], loc("You are playing with our lives here!"), SAY_SAY, 6000}},
-    {func = AnimSay, args = {players[1], loc("Do you think you're some kind of god?"), SAY_SAY, 6000}},
-    {func = AnimSay, args = {cyborg, loc("Interesting idea, haha!"), SAY_SAY, 2000}},
-    {func = AnimSwitchHog, args = {players[1]}},
-    {func = AnimWait, args = {players[1], 1}},
-    {func = AnimDisappear, swh = false, args = {cyborg, unpack(cyborgPos[4])}},
-    {func = HideHedge, swh = false, args = {cyborg}},
-    {func = AnimSay, args = {players[1], loc("What a douche!"), SAY_SAY, 2000}},
-  }
-end
---------------------------Anim skip functions--------------------------
-function SkipStartAnim()
-  RestoreNatives()
-  RestoreCyborgs()
-  SetGearMessage(CurrentHedgehog, 0)
-  AnimSwitchHog(cyborgs[1])
-  AnimWait(cyborg, 1)
-  AddFunction({func = HideHedge, args = {cyborg}})
-end
-
-function AfterStartAnim()
-  ShowMission(loc("The Enemy Of My Enemy"), loc("The Union"), loc("Defeat the cyborgs!"), 1, 0)
-  PutWeaponCrates()
-  PutHealthCrates()
-  TurnTimeLeft = 0
-end
-
-function PutHealthCrates()
-  for i = 1, 10 do
-    SpawnHealthCrate(0, 0)
-  end
-end
-
-function PutWeaponCrates()
-  SpawnAmmoCrate(2399, 622, amNapalm, 2)
-  SpawnAmmoCrate(2199, -18, amBee, 2)
-  SpawnAmmoCrate(2088, 430, amBee, 2)
-  SpawnAmmoCrate(237, 20, amMortar, 4)
-  SpawnAmmoCrate(312, 1107, amMolotov, 3)
-  SpawnAmmoCrate(531, 1123, amWatermelon, 2)
-  SpawnAmmoCrate(1253, 1444, amFlamethrower, 5)
-  SpawnAmmoCrate(994, 1364, amBaseballBat, 3)
-  SpawnAmmoCrate(1104, 1553, amMine, 6)
-  SpawnAmmoCrate(2277, 803, amDynamite, 2)
-  SpawnAmmoCrate(1106, 184, amRCPlane, 3)
-  SpawnAmmoCrate(1333, 28, amSMine, 4)
-  SpawnAmmoCrate(90, 279, amAirAttack, 2)
-  SpawnAmmoCrate(288, 269, amBee, 2)
-  SpawnAmmoCrate(818, 1633, amBaseballBat, 2)
-end
------------------------------Events------------------------------------
-function CheckNativesDead()
-  return nativesLeft == 0
-end
-
-function CheckCannibalsDead()
-  return cannibalsLeft == 0
-end
-
-function CheckPlayersDead()
-  return playersLeft == 0
-end
-
-function CheckCyborgsDead()
-  return (cyborgsLeft == 0 and (leader == nil or gearDead[leader] == true))
-end
-
-function DoNativesDead()
-  nativesDeadFresh = true
-  TurnTimeLeft = 0
-end
-
-function DoCannibalsDead()
-  cannibalsDeadFresh = true
-  TurnTimeLeft = 0
-end
-
-function DoPlayersDead()
-  RemoveEventFunc(CheckNativesDead)
-  RemoveEventFunc(CheckCannibalsDead)
-  RemoveEventFunc(CheckCyborgsDead)
-  playersDeadFresh = true
-  TurnTimeLeft = 0
-end
-
-function DoCyborgsDead()
---  RemoveEventFunc(CheckNativesDead)
---  RemoveEventFunc(CheckCannibalsDead)
-  cyborgsDeadFresh= true
-  TurnTimeLeft = 0
-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
-
-function FailedMission()
-  RestoreHedge(cyborg)
-  AnimOutOfNowhere(cyborg, unpack(cyborgPos[1]))
-  if CheckCyborgsDead() then
-    AnimSay(cyborg, loc("Hmmm...it's a draw. How unfortunate!"), SAY_THINK, 6000)
-  elseif leader ~= nil then
-    CondNeedToTurn2(cyborg, leader)
-    AddAnim({{func = AnimSay, args = {leader, loc("Yay, we won!"), SAY_SAY, 2000}},
-             {func = AnimSay, args = {cyborg, loc("Nice work!"), SAY_SAY, 2000}}})
-  else
-    CondNeedToTurn2(cyborg, cyborgs[1])
-    AddAnim({{func = AnimSay, args = {cyborgs[1], loc("Yay, we won!"), SAY_SAY, 2000}},
-             {func = AnimSay, args = {cyborg, loc("Nice work!"), SAY_SAY, 2000}}})
-  end
-  AddFunction({func = LoseMission, args = {}})
-end
-
-function LoseMission()
-  ParseCommand("teamgone " .. loc("Natives"))
-  ParseCommand("teamgone " .. loc("Cannibals"))
-  ParseCommand("teamgone " .. loc("011101001"))
-  TurnTimeLeft = 0
-end
-
-function WonMission()
-  RestoreHedge(cyborg)
-  CondNeedToTurn2(cyborg, players[1])
-  SetupFinalAnim()
-  AddAnim(finalAnim)
-  AddFunction({func = WinMission, args = {}})
-end
-
-function WinMission()
-  if progress and progress<9 then
-    SaveCampaignVar("Progress", "9")
-  end
-  ParseCommand("teamgone " .. loc("011101001"))
-  TurnTimeLeft = 0
-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"))
-  m8DeployedDead = tonumber(GetCampaignVar("M8DeployedDead"))
-  m8PrincessDead = tonumber(GetCampaignVar("M8PrincessDead"))
-  m8RamonDead = tonumber(GetCampaignVar("M8RamonDead"))
-  m8SpikyDead = tonumber(GetCampaignVar("M8SpikyDead"))
-  m8DeployedLeader = tonumber(GetCampaignVar("M8DeployedLeader"))
-  m8PrincessLeader = tonumber(GetCampaignVar("M8PrincessLeader"))
-  m8EnemyFled = tonumber(GetCampaignVar("M8EnemyFled"))
-  m8Scene = tonumber(GetCampaignVar("M8Scene"))
-end
-
-function SetupPlace()
-  for i = 1, playersNum do
-    HideHedge(players[i])
-  end
-  for i = 1, cyborgsNum do
-    HideHedge(cyborgs[i])
-  end
-  if leader ~= nil then
-    HideHedge(leader)
-  end
-end
-
-function SetupEvents()
-  AddNewEvent(CheckPlayersDead, {}, DoPlayersDead, {}, 0)
-  AddNewEvent(CheckNativesDead, {}, DoNativesDead, {}, 0)
-  AddNewEvent(CheckCannibalsDead, {}, DoCannibalsDead, {}, 0)
-  AddNewEvent(CheckCyborgsDead, {}, DoCyborgsDead, {}, 0)
-end
-
-function SetupAmmo()
-  AddAmmo(cyborgs[1], amClusterBomb, 100)
-  AddAmmo(cyborgs[1], amMortar, 100)
-  AddAmmo(cyborgs[1], amDynamite, 2)
-  AddAmmo(cyborgs[1], amAirAttack, 2)
-  AddAmmo(cyborgs[1], amTeleport, 100)
-
-  if leader ~= nil then
-    AddAmmo(leader, amClusterBomb, 100)
-    AddAmmo(leader, amMortar, 100)
-    AddAmmo(leader, amDynamite, 100)
-    AddAmmo(leader, amAirAttack, 3)
-    AddAmmo(leader, amTeleport, 100)
-  end
-end
-
-function AddHogs()
-  AddTeam(loc("011101001"), 14483456, "ring", "UFO", "Robot", "cm_star")
-  cyborg = AddHog(loc("Unit 334a$7%;.*"), 0, 200, "cyborg1")
-
-	AddTeam(loc("Natives"), 29439, "Bone", "Island", "HillBilly", "cm_birdy")
-  natives[1] = AddHog(nativeNames[leaksNum], 0, 100, nativeHats[leaksNum])
-  if m5DeployedNum ~= leaksNum and m8DeployedLeader == 0 then
-    natives[2] = AddHog(nativeNames[m5DeployedNum], 0, 100, nativeHats[m5DeployedNum])
-  end
-  table.insert(natives, AddHog(nativeNames[ramonNum], 0, 100, nativeHats[ramonNum]))
-  table.insert(natives, AddHog(nativeNames[spikyNum], 0, 100, nativeHats[spikyNum]))
-  if m8PrincessLeader == 0 then
-    table.insert(natives, AddHog(loc("Fell From Heaven"), 0, 100, "tiara"))
-  end
-  nativesNum = #natives
-  nativesLeft = nativesNum
-  cannibalsLeft = cannibalsNum
-  for i = 1, nativesNum do
-    table.insert(players, natives[i])
-  end
-
-	AddTeam(loc("Cannibals"), 29439, "Bone", "Island", "HillBilly", "cm_birdy")
-  for i = 1, cannibalsNum do
-    cannibals[i] = AddHog(cannibalNames[i], 0, 100, "Zombi")
-    table.insert(players, cannibals[i])
-  end
-  playersNum = #players
-  playersLeft = playersNum
-
-  AddTeam(loc("Hedge-cogs"), 14483455, "ring", "UFO", "Robot", "cm_star")
-  for i = 1, cyborgsNum do
-    cyborgs[i] = AddHog(cyborgNames[i], 2, 80, "cyborg2")
-  end
-
-  if m8EnemyFled == 1 then
-    AddTeam(loc("Leader"), 14483455, "ring", "UFO", "Robot", "cm_star")
-    if m8Scene == denseScene then
-      leader = AddHog(loc("Dense Cloud"), 2, 200, nativeHats[denseNum])
-    elseif m8Scene == waterScene then
-      leader = AddHog(loc("Fiery Water"), 2, 200, nativeHats[waterNum])
-    elseif m8Scene == princessScene then
-      leader = AddHog(loc("Fell From Heaven"), 2, 200, "tiara")
-    else
-      leader = AddHog(loc("Nancy Screw"), 2, 200, "cyborg2")
-    end
-  end
-
-  cyborgsLeft = cyborgsNum
-
-  for i = 1, nativesNum do
-    AnimSetGearPosition(natives[i], unpack(nativePos[i]))
-    AnimTurn(natives[i], nativeDir[i])
-  end
-  for i = 1, cannibalsNum do
-    AnimSetGearPosition(cannibals[i], unpack(cannibalPos[i]))
-    AnimTurn(cannibals[i], cannibalDir[i])
-  end
-  for i = 1, cyborgsNum do
-    AnimSetGearPosition(cyborgs[i], unpack(cyborgsPos[i]))
-    AnimTurn(cyborgs[i], cyborgsDir[i])
-  end
-  AnimSetGearPosition(cyborg, unpack(cyborgPos[1]))
-  AnimTurn(cyborg, cyborgDir)
-  if leader ~= nil then
-    AnimSetGearPosition(leader, unpack(leaderPos))
-    AnimTurn(leader, leaderDir[i])
-  end
-end
-
------------------------------Main Functions----------------------------
-
-function onGameInit()
-	Seed = 0
-	GameFlags = gfSolidLand
-	TurnTime = 60000 
-	CaseFreq = 0
-	MinesNum = 0
-	MinesTime = 3000
-	Explosives = 0
-	Delay = 10 
-  Map = "Islands"
-	Theme = "EarthRise"
-  SuddenDeathTurns = 20
-
-  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)
-  gearDead[gear] = true
-  if GetGearType(gear) == gtHedgehog then
-    if GetHogTeamName(gear) == loc("Natives") then
-      for i = 1, nativesLeft do
-        if natives[i] == gear then
-          table.remove(natives, i)
-          table.remove(players, i)
-          nativesLeft = nativesLeft - 1
-          playersLeft = playersLeft - 1
-        end
-      end
-    elseif GetHogTeamName(gear) == loc("Cannibals") then
-      for i = 1, cannibalsLeft do
-        if cannibals[i] == gear then
-          table.remove(cannibals, i)
-          table.remove(players, nativesLeft + i)
-          cannibalsLeft = cannibalsLeft - 1
-          playersLeft = playersLeft - 1
-        end
-      end
-    elseif GetHogTeamName(gear) == loc("Hedge-cogs") then
-      for i = 1, cyborgsLeft do
-        if cyborgs[i] == gear then
-          table.remove(cyborgs, i)
-        end
-      end
-      cyborgsLeft = cyborgsLeft - 1
-    end
-  end
-end
-
-function onAmmoStoreInit()
-  SetAmmo(amSkip, 9, 0, 0, 0)
-  SetAmmo(amSwitch, 9, 0, 0, 0)
-  SetAmmo(amDEagle, 9, 0, 0, 0)
-  SetAmmo(amSniperRifle, 9, 0, 0, 0)
-  SetAmmo(amBazooka, 8, 0, 0, 0)
-  SetAmmo(amGrenade, 7, 0, 0, 0)
-  SetAmmo(amFirePunch, 9, 0, 0, 0)
-  SetAmmo(amShotgun, 9, 0, 0, 0)
-
-  SetAmmo(amParachute, 9, 0, 0, 0)
-  SetAmmo(amRope, 9, 0, 0, 0)
-  SetAmmo(amPickHammer, 9, 0, 0, 0)
-  SetAmmo(amBlowTorch, 9, 0, 0, 0)
-end
-
-function onNewTurn()
-  if AnimInProgress() then
-    TurnTimeLeft = -1
-    return
-  end
-  if playersDeadFresh then
-    playersDeadFresh = false
-    FailedMission()
-  elseif cyborgsDeadFresh then
-    cyborgsDeadFresh = false
-    WonMission()
-  elseif nativesDeadFresh and GetHogTeamName(CurrentHedgehog) == loc("Cannibals") then
-    AnimSay(CurrentHedgehog, loc("Your deaths will be avenged, cannibals!"), SAY_SHOUT, 0)
-    nativesDeadFresh = false
-  elseif cannibalsDeadFresh and GetHogTeamName(CurrentHedgehog) == loc("Natives") then
-    AnimSay(CurrentHedgehog, loc("Your deaths will be avenged, cannibals!"), SAY_SHOUT, 0)
-    cannibalsDeadFresh = false
-  end
-end
-
-function onPrecise()
-  if GameTime > 3000 and AnimInProgress() then
-    SetAnimSkip(true)
-  end
-end