share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit01.lua
branchspacecampaign
changeset 9510 e7481fac10c4
parent 9508 c23bff98e3d2
child 9512 9686c9116020
equal deleted inserted replaced
9508:c23bff98e3d2 9510:e7481fac10c4
    96 	hero.gear = AddHog(hero.name, 0, 100, "war_desertgrenadier1")
    96 	hero.gear = AddHog(hero.name, 0, 100, "war_desertgrenadier1")
    97 	AnimSetGearPosition(hero.gear, hero.x, hero.y)
    97 	AnimSetGearPosition(hero.gear, hero.x, hero.y)
    98 	HogTurnLeft(hero.gear, true)
    98 	HogTurnLeft(hero.gear, true)
    99 	-- Green Bananas
    99 	-- Green Bananas
   100 	AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_birdy")
   100 	AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_birdy")
   101 	green1.gear = AddHog(green1.name, 0, 100, "war_desertgrenadier1")
   101 	green1.gear = AddHog(green1.name, 1, 100, "war_desertgrenadier1")
   102 	AnimSetGearPosition(green1.gear, green1.x, green1.y)
   102 	AnimSetGearPosition(green1.gear, green1.x, green1.y)
   103 	green2.gear = AddHog(green2.name, 0, 100, "war_desertgrenadier1")
   103 	green2.gear = AddHog(green2.name, 0, 100, "war_desertgrenadier1")
   104 	AnimSetGearPosition(green2.gear, green2.x, green2.y)
   104 	AnimSetGearPosition(green2.gear, green2.x, green2.y)
   105 	HogTurnLeft(green2.gear, true)
   105 	HogTurnLeft(green2.gear, true)
   106 	green3.gear = AddHog(green3.name, 0, 100, "war_desertgrenadier1")
   106 	green3.gear = AddHog(green3.name, 0, 100, "war_desertgrenadier1")
   168 	AddAnim(dialog01)
   168 	AddAnim(dialog01)
   169 	SendHealthStatsOff()
   169 	SendHealthStatsOff()
   170 end
   170 end
   171 
   171 
   172 function onNewTurn()
   172 function onNewTurn()
   173 	if CurrentHedgehog == green1.gear then
   173 	if chooseToBattle then
   174 		TotalRounds = TotalRounds - 2
   174 		if CurrentHedgehog == green1.gear then
   175 		SwitchHog(previousHog)
   175 			TotalRounds = TotalRounds - 2
   176 		TurnTimeLeft = 0
   176 			SwitchHog(previousHog)
   177 	end
   177 			TurnTimeLeft = 0
   178 	previousHog = CurrentHedghog
   178 		end
       
   179 		previousHog = CurrentHedghog
       
   180 	end
   179 	getNextWave()
   181 	getNextWave()
   180 end
   182 end
   181 
   183 
   182 function onGameTick()
   184 function onGameTick()
   183 	AnimUnWait()
   185 	AnimUnWait()
   258 	end
   260 	end
   259 	return win
   261 	return win
   260 end
   262 end
   261 
   263 
   262 function onEscapeWin(gear)
   264 function onEscapeWin(gear)
       
   265 	local escape = false
   263 	if not hero.dead and GetX(hero.gear) < 170 and GetY(hero.gear) > 1980 and StoppedGear(hero.gear) then
   266 	if not hero.dead and GetX(hero.gear) < 170 and GetY(hero.gear) > 1980 and StoppedGear(hero.gear) then
   264 		return true
   267 		escape = true
   265 	end
   268 		local yellowTeam = { yellow1, unpack(yellowArmy) }
   266 	return false
   269 		for i=1,8 do
       
   270 			if not yellowTeam[i].hidden and GetHealth(yellowTeam[i].gear) and GetX(yellowTeam[i].gear) < 170 then
       
   271 				escape = false
       
   272 				break
       
   273 			end
       
   274 		end
       
   275 	end
       
   276 	return escape
   267 end
   277 end
   268 
   278 
   269 function onHeroSelect(gear)
   279 function onHeroSelect(gear)
   270 	if GetX(hero.gear) ~= hero.x then
   280 	if GetX(hero.gear) ~= hero.x then
   271 		return true
   281 		return true
   301 		AddEvent(onGreen1Death, {green1.gear}, green1Death, {green1.gear}, 0)
   311 		AddEvent(onGreen1Death, {green1.gear}, green1Death, {green1.gear}, 0)
   302 		AddEvent(onBattleWin, {hero.gear}, battleWin, {hero.gear}, 0)
   312 		AddEvent(onBattleWin, {hero.gear}, battleWin, {hero.gear}, 0)
   303 		AddAnim(dialog02)
   313 		AddAnim(dialog02)
   304 	elseif GetX(hero.gear) > hero.x then
   314 	elseif GetX(hero.gear) > hero.x then
   305 		HogTurnLeft(hero.gear, true)
   315 		HogTurnLeft(hero.gear, true)
       
   316 		AddAmmo(green1.gear, amSwitch, 100)
   306 		AddEvent(onEscapeWin, {hero.gear}, escapeWin, {hero.gear}, 0)
   317 		AddEvent(onEscapeWin, {hero.gear}, escapeWin, {hero.gear}, 0)
   307 		local greenTeam = { green2, green3, green4 }
   318 		local greenTeam = { green2, green3, green4 }
   308 		for i=1,3 do
   319 		for i=1,3 do
   309 			SetHogLevel(greenTeam[i].gear, 1)
   320 			SetHogLevel(greenTeam[i].gear, 1)
   310 		end
   321 		end
   383 end
   394 end
   384 
   395 
   385 function getNextWave()
   396 function getNextWave()
   386 	if TotalRounds == 4 then
   397 	if TotalRounds == 4 then
   387 		RestoreHog(yellowArmy[3].gear)
   398 		RestoreHog(yellowArmy[3].gear)
   388 		AnimCaption(hero.gear, loc("Next wave in 3 turns"), 5000)
   399 		AnimCaption(hero.gear, loc("Next wave in 3 turns"), 5000)		
       
   400 		if not chooseToBattle and not GetHealth(yellow1.gear) then
       
   401 			SetGearPosition(yellowArmy[3].gear, yellow1.x, yellow1.y)
       
   402 		end
   389 	elseif TotalRounds == 7 then
   403 	elseif TotalRounds == 7 then
   390 		RestoreHog(yellowArmy[4].gear)
   404 		RestoreHog(yellowArmy[4].gear)
   391 		RestoreHog(yellowArmy[5].gear)
   405 		RestoreHog(yellowArmy[5].gear)
   392 		AnimCaption(hero.gear, loc("Last wave in 3 turns"), 5000)
   406 		AnimCaption(hero.gear, loc("Last wave in 3 turns"), 5000)
       
   407 		if not chooseToBattle and not GetHealth(yellow1.gear) and not GetHealth(yellowArmy[3].gear) then
       
   408 			SetGearPosition(yellowArmy[4].gear, yellow1.x, yellow1.y)
       
   409 		end
   393 	elseif TotalRounds == 10 then
   410 	elseif TotalRounds == 10 then
   394 		RestoreHog(yellowArmy[6].gear)
   411 		RestoreHog(yellowArmy[6].gear)
   395 		RestoreHog(yellowArmy[7].gear)
   412 		RestoreHog(yellowArmy[7].gear)
   396 	end
   413 		if not chooseToBattle and not GetHealth(yellow1.gear) and not GetHealth(yellowArmy[3].gear) 
   397 end
   414 				and not GetHealth(yellowArmy[4].gear) then
       
   415 			SetGearPosition(yellowArmy[6].gear, yellow1.x, yellow1.y)
       
   416 		end
       
   417 	end
       
   418 end