share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/enemy.lua
changeset 14485 f37910a73c19
parent 14401 6c21bd8547dd
child 14486 f8c2b995c009
equal deleted inserted replaced
14484:764ba6182389 14485:f37910a73c19
    75               {751, 543}, {3889, 907}}
    75               {751, 543}, {3889, 907}}
    76 cyborgsDir = {"Right", "Right", "Left", "Right", "Right", "Left"}
    76 cyborgsDir = {"Right", "Right", "Left", "Right", "Right", "Left"}
    77 
    77 
    78 leaderPos = {3474, 151}
    78 leaderPos = {3474, 151}
    79 leaderDir = "Left"
    79 leaderDir = "Left"
       
    80 
       
    81 cyborgTeamName = nil
       
    82 nativesTeamName = nil
       
    83 cannibalsTeamName = nil
       
    84 hedgecogsTeamName = nil
       
    85 leaderTeamName = nil
    80 
    86 
    81 -----------------------------Variables---------------------------------
    87 -----------------------------Variables---------------------------------
    82 natives = {}
    88 natives = {}
    83 origNatives = {}
    89 origNatives = {}
    84 
    90 
   417   end
   423   end
   418   AddFunction({func = LoseMission, args = {}})
   424   AddFunction({func = LoseMission, args = {}})
   419 end
   425 end
   420 
   426 
   421 function LoseMission()
   427 function LoseMission()
   422   DismissTeam(loc("Natives"))
   428   DismissTeam(nativesTeamName)
   423   DismissTeam(loc("Cannibals"))
   429   DismissTeam(cannibalsTeamName)
   424   DismissTeam(loc("011101001"))
   430   DismissTeam(cyborgTeamName)
   425   EndTurn(true)
   431   EndTurn(true)
   426 end
   432 end
   427 
   433 
   428 function WonMission()
   434 function WonMission()
   429   RestoreHedge(cyborg)
   435   RestoreHedge(cyborg)
   435 
   441 
   436 function WinMission()
   442 function WinMission()
   437   if progress and progress<9 then
   443   if progress and progress<9 then
   438     SaveCampaignVar("Progress", "9")
   444     SaveCampaignVar("Progress", "9")
   439   end
   445   end
   440   DismissTeam(loc("011101001"))
   446   DismissTeam(cyborgTeamName)
   441   EndTurn(true)
   447   EndTurn(true)
   442 end
   448 end
   443 -----------------------------Misc--------------------------------------
   449 -----------------------------Misc--------------------------------------
   444 function HideHedge(hedge)
   450 function HideHedge(hedge)
   445   if hedgeHidden[hedge] ~= true then
   451   if hedgeHidden[hedge] ~= true then
   517     AddAmmo(leader, amTeleport, 100)
   523     AddAmmo(leader, amTeleport, 100)
   518   end
   524   end
   519 end
   525 end
   520 
   526 
   521 function AddHogs()
   527 function AddHogs()
   522   AddTeam(loc("011101001"), -1, "ring", "UFO", "Robot", "cm_binary")
   528   cyborgTeamName = AddTeam(loc("011101001"), -1, "ring", "UFO", "Robot", "cm_binary")
   523   cyborg = AddHog(loc("Unit 334a$7%;.*"), 0, 200, "cyborg1")
   529   cyborg = AddHog(loc("Unit 334a$7%;.*"), 0, 200, "cyborg1")
   524 
   530 
   525   AddTeam(loc("Natives"), -2, "Bone", "Island", "HillBilly", "cm_birdy")
   531   nativesTeamName = AddTeam(loc("Natives"), -2, "Bone", "Island", "HillBilly", "cm_birdy")
   526   -- There are 3-4 natives in this mission
   532   -- There are 3-4 natives in this mission
   527   natives[1] = AddHog(nativeNames[leaksNum], 0, 100, nativeHats[leaksNum])
   533   natives[1] = AddHog(nativeNames[leaksNum], 0, 100, nativeHats[leaksNum])
   528   if m5DeployedNum ~= leaksNum and m8DeployedLeader == 0 then
   534   if m5DeployedNum ~= leaksNum and m8DeployedLeader == 0 then
   529     natives[2] = AddHog(nativeNames[m5DeployedNum], 0, 100, nativeHats[m5DeployedNum])
   535     natives[2] = AddHog(nativeNames[m5DeployedNum], 0, 100, nativeHats[m5DeployedNum])
   530   end
   536   end
   538   cannibalsLeft = cannibalsNum
   544   cannibalsLeft = cannibalsNum
   539   for i = 1, nativesNum do
   545   for i = 1, nativesNum do
   540     table.insert(players, natives[i])
   546     table.insert(players, natives[i])
   541   end
   547   end
   542 
   548 
   543   AddTeam(loc("Cannibals"), -2, "Bone", "Island", "HillBilly", "cm_birdy")
   549   cannibalsTeamName = AddTeam(loc("Cannibals"), -2, "Bone", "Island", "HillBilly", "cm_birdy")
   544   for i = 1, cannibalsNum do
   550   for i = 1, cannibalsNum do
   545     cannibals[i] = AddHog(cannibalNames[i], 0, 100, "Zombi")
   551     cannibals[i] = AddHog(cannibalNames[i], 0, 100, "Zombi")
   546     table.insert(players, cannibals[i])
   552     table.insert(players, cannibals[i])
   547   end
   553   end
   548   playersNum = #players
   554   playersNum = #players
   549   playersLeft = playersNum
   555   playersLeft = playersNum
   550 
   556 
   551   AddTeam(loc("Hedge-cogs"), -9, "ring", "UFO", "Robot", "cm_cyborg")
   557   hedgecogsTeamName = AddTeam(loc("Hedge-cogs"), -9, "ring", "UFO", "Robot", "cm_cyborg")
   552   for i = 1, cyborgsNum do
   558   for i = 1, cyborgsNum do
   553     cyborgs[i] = AddHog(cyborgNames[i], 2, 80, "cyborg2")
   559     cyborgs[i] = AddHog(cyborgNames[i], 2, 80, "cyborg2")
   554   end
   560   end
   555 
   561 
   556   if m8EnemyFled == 1 then
   562   if m8EnemyFled == 1 then
   557     AddTeam(loc("Leader"), -9, "ring", "UFO", "Robot", "cm_cyborg")
   563     leaderTeamName = AddTeam(loc("Leader"), -9, "ring", "UFO", "Robot", "cm_cyborg")
   558     if m8Scene == denseScene then
   564     if m8Scene == denseScene then
   559       leader = AddHog(loc("Dense Cloud"), 2, 200, nativeHats[denseNum])
   565       leader = AddHog(loc("Dense Cloud"), 2, 200, nativeHats[denseNum])
   560     elseif m8Scene == waterScene then
   566     elseif m8Scene == waterScene then
   561       leader = AddHog(loc("Fiery Water"), 2, 200, nativeHats[waterNum])
   567       leader = AddHog(loc("Fiery Water"), 2, 200, nativeHats[waterNum])
   562     elseif m8Scene == princessScene then
   568     elseif m8Scene == princessScene then
   626 end
   632 end
   627 
   633 
   628 function onGearDelete(gear)
   634 function onGearDelete(gear)
   629   gearDead[gear] = true
   635   gearDead[gear] = true
   630   if GetGearType(gear) == gtHedgehog then
   636   if GetGearType(gear) == gtHedgehog then
   631     if GetHogTeamName(gear) == loc("Natives") then
   637     if GetHogTeamName(gear) == nativesTeamName then
   632       for i = 1, nativesLeft do
   638       for i = 1, nativesLeft do
   633         if natives[i] == gear then
   639         if natives[i] == gear then
   634           table.remove(natives, i)
   640           table.remove(natives, i)
   635           table.remove(players, i)
   641           table.remove(players, i)
   636           nativesLeft = nativesLeft - 1
   642           nativesLeft = nativesLeft - 1
   637           playersLeft = playersLeft - 1
   643           playersLeft = playersLeft - 1
   638         end
   644         end
   639       end
   645       end
   640     elseif GetHogTeamName(gear) == loc("Cannibals") then
   646     elseif GetHogTeamName(gear) == cannibalsTeamName then
   641       for i = 1, cannibalsLeft do
   647       for i = 1, cannibalsLeft do
   642         if cannibals[i] == gear then
   648         if cannibals[i] == gear then
   643           table.remove(cannibals, i)
   649           table.remove(cannibals, i)
   644           table.remove(players, nativesLeft + i)
   650           table.remove(players, nativesLeft + i)
   645           cannibalsLeft = cannibalsLeft - 1
   651           cannibalsLeft = cannibalsLeft - 1
   646           playersLeft = playersLeft - 1
   652           playersLeft = playersLeft - 1
   647         end
   653         end
   648       end
   654       end
   649     elseif GetHogTeamName(gear) == loc("Hedge-cogs") then
   655     elseif GetHogTeamName(gear) == hedgecogsTeamName then
   650       for i = 1, cyborgsLeft do
   656       for i = 1, cyborgsLeft do
   651         if cyborgs[i] == gear then
   657         if cyborgs[i] == gear then
   652           table.remove(cyborgs, i)
   658           table.remove(cyborgs, i)
   653         end
   659         end
   654       end
   660       end
   682     playersDeadFresh = false
   688     playersDeadFresh = false
   683     FailedMission()
   689     FailedMission()
   684   elseif cyborgsDeadFresh then
   690   elseif cyborgsDeadFresh then
   685     cyborgsDeadFresh = false
   691     cyborgsDeadFresh = false
   686     WonMission()
   692     WonMission()
   687   elseif nativesDeadFresh and GetHogTeamName(CurrentHedgehog) == loc("Cannibals") then
   693   elseif nativesDeadFresh and GetHogTeamName(CurrentHedgehog) == cannibalsTeamName then
   688     AnimSay(CurrentHedgehog, loc("Your deaths will be avenged, Natives!"), SAY_SHOUT, 0)
   694     AnimSay(CurrentHedgehog, string.format(loc("Your deaths will be avenged, %s!"), nativesTeamName), SAY_SHOUT, 0)
   689     nativesDeadFresh = false
   695     nativesDeadFresh = false
   690   elseif cannibalsDeadFresh and GetHogTeamName(CurrentHedgehog) == loc("Natives") then
   696   elseif cannibalsDeadFresh and GetHogTeamName(CurrentHedgehog) == nativesTeamName then
   691     AnimSay(CurrentHedgehog, loc("Your deaths will be avenged, Cannibals!"), SAY_SHOUT, 0)
   697     AnimSay(CurrentHedgehog, string.format(loc("Your deaths will be avenged, %s!"), cannibalsTeamName), SAY_SHOUT, 0)
   692     cannibalsDeadFresh = false
   698     cannibalsDeadFresh = false
   693   end
   699   end
   694 end
   700 end
   695 
   701 
   696 function onPrecise()
   702 function onPrecise()