share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit01.lua
branchspacecampaign
changeset 9494 e515962d7af4
parent 9492 1cbd49706334
child 9496 ffab82d05785
equal deleted inserted replaced
9492:1cbd49706334 9494:e515962d7af4
    12 ----------------- VARIABLES --------------------
    12 ----------------- VARIABLES --------------------
    13 -- globals
    13 -- globals
    14 local campaignName = loc("A Space Adventure")
    14 local campaignName = loc("A Space Adventure")
    15 local missionName = loc("Fruit planet, The War!")
    15 local missionName = loc("Fruit planet, The War!")
    16 local chooseToBattle = false
    16 local chooseToBattle = false
    17 local watermellonsWave = 1
       
    18 -- dialogs
    17 -- dialogs
    19 local dialog01 = {}
    18 local dialog01 = {}
    20 local dialog02 = {}
    19 local dialog02 = {}
    21 local dialog03 = {}
    20 local dialog03 = {}
    22 -- mission objectives
    21 -- mission objectives
    56 yellow1.name = "General Lemon"
    55 yellow1.name = "General Lemon"
    57 yellow1.x = 140
    56 yellow1.x = 140
    58 yellow1.y = 1980
    57 yellow1.y = 1980
    59 local yellowArmy = {
    58 local yellowArmy = {
    60 	[1] = {name = "Robert Yellow Apple", x = 710, y = 1780},
    59 	[1] = {name = "Robert Yellow Apple", x = 710, y = 1780},
    61 	[2] = {name = "Summer Squash", x = 304 , y = 1960},
    60 	[2] = {name = "Summer Squash", x = 315 , y = 1960},
    62 	[3] = {name = "Tall Potato", x = 830 , y = 3340},
    61 	[3] = {name = "Tall Potato", x = 830 , y = 1748},
    63 	[4] = {name = "Yellow Pepper", x = 300 , y = 1960},
    62 	[4] = {name = "Yellow Pepper", x = 285 , y = 1960},
    64 	[5] = {name = "Corn", x = 1320 , y = 540},
    63 	[5] = {name = "Corn", x = 1320 , y = 540},
    65 	[6] = {name = "Max Citrus", x = 1900 , y = 1700},
    64 	[6] = {name = "Max Citrus", x = 1900 , y = 1700},
    66 	[7] = {name = "Naranja Jed", x = 960 , y = 316},
    65 	[7] = {name = "Naranja Jed", x = 960 , y = 316},
    67 }
    66 }
    68 teamA.name = loc("Hog Solo")
    67 teamA.name = loc("Hog Solo")
    93 	AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_birdy")
    92 	AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_birdy")
    94 	green1.gear = AddHog(green1.name, 0, 100, "war_desertgrenadier1")
    93 	green1.gear = AddHog(green1.name, 0, 100, "war_desertgrenadier1")
    95 	AnimSetGearPosition(green1.gear, green1.x, green1.y)
    94 	AnimSetGearPosition(green1.gear, green1.x, green1.y)
    96 	-- Yellow Watermellons
    95 	-- Yellow Watermellons
    97 	AddTeam(teamC.name, teamC.color, "Bone", "Island", "HillBilly", "cm_birdy")
    96 	AddTeam(teamC.name, teamC.color, "Bone", "Island", "HillBilly", "cm_birdy")
    98 	yellow1.gear = AddHog(yellow1.name, 0, 100, "war_desertgrenadier1")
    97 	yellow1.gear = AddHog(yellow1.name, 1, 100, "war_desertgrenadier1")
    99 	AnimSetGearPosition(yellow1.gear, yellow1.x, yellow1.y)
    98 	AnimSetGearPosition(yellow1.gear, yellow1.x, yellow1.y)
   100 	-- the rest of the Yellow Watermellons
    99 	-- the rest of the Yellow Watermellons
   101 	for i=1,7 do
   100 	for i=1,7 do
   102 		yellowArmy[i].gear = AddHog(yellowArmy[i].name, 0, 100, "war_desertgrenadier1")
   101 		yellowArmy[i].gear = AddHog(yellowArmy[i].name, 1, 100, "war_desertgrenadier1")
   103 		AnimSetGearPosition(yellowArmy[i].gear, yellowArmy[i].x, yellowArmy[i].y)
   102 		AnimSetGearPosition(yellowArmy[i].gear, yellowArmy[i].x, yellowArmy[i].y)
       
   103 	end
       
   104 
       
   105 	AnimInit()
       
   106 	AnimationSetup()	
       
   107 end
       
   108 
       
   109 function onGameStart()
       
   110 	AnimWait(hero.gear, 3000)
       
   111 	FollowGear(hero.gear)
       
   112 	
       
   113 	AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0)
       
   114 	AddEvent(onHeroSelect, {hero.gear}, heroSelect, {hero.gear}, 0)
       
   115 	
       
   116 	-- Hog Solo weapons
       
   117 	AddAmmo(hero.gear, amRope, 2)
       
   118 	AddAmmo(hero.gear, amBazooka, 3)
       
   119 	AddAmmo(hero.gear, amParachute, 1)
       
   120 	AddAmmo(hero.gear, amGrenade, 6)
       
   121 	AddAmmo(hero.gear, amDEagle, 4)
       
   122 	-- Other team wapons
       
   123 	AddAmmo(yellow1.gear, amBlowTorch, 1)
       
   124 	AddAmmo(yellow1.gear, amRope, 1)
       
   125 	AddAmmo(yellow1.gear, amBazooka, 3)
       
   126 	AddAmmo(yellow1.gear, amGrenade, 1)
       
   127 	AddAmmo(yellow1.gear, amFirePunch, 1)
       
   128 	AddAmmo(yellow1.gear, amDrill, 1)
       
   129 	for i=1,7 do
       
   130 		AddAmmo(yellowArmy[i].gear, amBlowTorch, 1)
       
   131 		AddAmmo(yellowArmy[i].gear, amRope, 1)
       
   132 		AddAmmo(yellowArmy[i].gear, amBazooka, 3)
       
   133 		AddAmmo(yellowArmy[i].gear, amGrenade, 1)
       
   134 		AddAmmo(yellowArmy[i].gear, amFirePunch, 1)
       
   135 		AddAmmo(yellowArmy[i].gear, amDrill, 1)	
   104 		if i>2 then
   136 		if i>2 then
   105 			HideHog(yellowArmy[i].gear)
   137 			HideHog(yellowArmy[i].gear)
   106 		end
   138 		end
   107 	end
   139 	end
   108 
       
   109 	AnimInit()
       
   110 	AnimationSetup()	
       
   111 end
       
   112 
       
   113 function onGameStart()
       
   114 	AnimWait(hero.gear, 3000)
       
   115 	FollowGear(hero.gear)
       
   116 	
       
   117 	AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0)
       
   118 	AddEvent(onHeroSelect, {hero.gear}, heroSelect, {hero.gear}, 0)
       
   119 	
   140 	
   120 	AddAnim(dialog01)
   141 	AddAnim(dialog01)
   121 	SendHealthStatsOff()
   142 	SendHealthStatsOff()
       
   143 end
       
   144 
       
   145 function onNewTurn()
       
   146 	getNextWave()
   122 end
   147 end
   123 
   148 
   124 function onGameTick()
   149 function onGameTick()
   125 	AnimUnWait()
   150 	AnimUnWait()
   126 	if ShowAnimation() == false then
   151 	if ShowAnimation() == false then
   169 	EndGame()
   194 	EndGame()
   170 end
   195 end
   171 
   196 
   172 function heroSelect(gear)
   197 function heroSelect(gear)
   173 	FollowGear(hero.gear)
   198 	FollowGear(hero.gear)
       
   199 	TurnTimeLeft = 0
   174 	if GetX(hero.gear) < hero.x then
   200 	if GetX(hero.gear) < hero.x then
   175 		chooseToBattle = true
   201 		chooseToBattle = true
   176 		AddAnim(dialog02)
   202 		AddAnim(dialog02)
   177 	elseif GetX(hero.gear) > hero.x then
   203 	elseif GetX(hero.gear) > hero.x then
   178 		AddAnim(dialog03)
   204 		AddAnim(dialog03)
   185 	if goals[anim] ~= nil then
   211 	if goals[anim] ~= nil then
   186 		ShowMission(unpack(goals[anim]))
   212 		ShowMission(unpack(goals[anim]))
   187     end
   213     end
   188     if anim == dialog01 then
   214     if anim == dialog01 then
   189 		AnimSwitchHog(hero.gear)
   215 		AnimSwitchHog(hero.gear)
       
   216 	elseif anim == dialog02 or anim == dialog03 then
       
   217 		startBattle()
   190     end
   218     end
   191 end
   219 end
   192 
   220 
   193 function AnimationSetup()
   221 function AnimationSetup()
   194 	-- DIALOG 01 - Start, Captain Lime talks explains to Hog Solo
   222 	-- DIALOG 01 - Start, Captain Lime talks explains to Hog Solo
   232 end
   260 end
   233 
   261 
   234 ------------- OTHER FUNCTIONS ---------------
   262 ------------- OTHER FUNCTIONS ---------------
   235 
   263 
   236 function startBattle()
   264 function startBattle()
   237 	
   265 	AnimSwitchHog(yellow1.gear)
       
   266 	TurnTimeLeft = 0
   238 end
   267 end
   239 
   268 
   240 function getNextWave()
   269 function getNextWave()
   241 	if watermellonsWave == 1 then
   270 	if TotalRounds == 4 then
   242 		
   271 		RestoreHog(yellowArmy[3].gear)
   243 	elseif watermellonsWave == 2 then
   272 		AnimCaption(hero.gear, loc("Next wave in 3 turns"), 5000)
   244 		
   273 	elseif TotalRounds == 7 then
   245 	elseif watermellonsWave == 3 then
   274 		RestoreHog(yellowArmy[4].gear)
   246 		
   275 		RestoreHog(yellowArmy[5].gear)
   247 	end
   276 		AnimCaption(hero.gear, loc("Last wave in 3 turns"), 5000)
   248 end
   277 	elseif TotalRounds == 10 then
       
   278 		RestoreHog(yellowArmy[6].gear)
       
   279 		RestoreHog(yellowArmy[7].gear)
       
   280 	end
       
   281 end