share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit02.lua
changeset 13584 53ca3a22da45
parent 13583 141cdfe0f3ca
child 13742 2bb7141496a9
equal deleted inserted replaced
13583:141cdfe0f3ca 13584:53ca3a22da45
    65 	{ name = loc("Dark Strawberry") },
    65 	{ name = loc("Dark Strawberry") },
    66 	{ name = loc("Watermelon Heart") },
    66 	{ name = loc("Watermelon Heart") },
    67 	{ name = loc("Deadly Grape") }
    67 	{ name = loc("Deadly Grape") }
    68 }
    68 }
    69 -- Hog Solo and Green Bananas
    69 -- Hog Solo and Green Bananas
    70 -- TODO: Use default clan colors
       
    71 teamA.name = loc("Hog Solo and GB")
    70 teamA.name = loc("Hog Solo and GB")
    72 teamA.color = 0x38D61C -- green
    71 teamA.color = -6
       
    72 -- Captain Lime will use a color which is almost the same as the color of teamA.
       
    73 -- It works, but it's a hack.
       
    74 -- Technically, this makes Captain Lime an enemy team in the mission but for the player
       
    75 -- it looks like an ally. This is because Camptain Lime starts friendly (story-wise),
       
    76 -- but might become your enemy during the course of this mission.
       
    77 -- TODO: For teamB, use same color of teamA when friendly, change color when evil
    73 teamB.name = loc("Captain Lime")
    78 teamB.name = loc("Captain Lime")
    74 -- FIXME: Use different clan color
       
    75 teamB.color = 0x38D61D -- greenish
       
    76 teamC.name = loc("Fruit Assassins")
    79 teamC.name = loc("Fruit Assassins")
    77 teamC.color = 0xFF0000 -- red
    80 teamC.color = -1
    78 
    81 
    79 function onGameInit()
    82 function onGameInit()
    80 	GameFlags = gfDisableWind
    83 	GameFlags = gfDisableWind
    81 	Seed = 1
    84 	Seed = 1
    82 	TurnTime = 20000
    85 	TurnTime = 20000
    91 	Map = "fruit02_map"
    94 	Map = "fruit02_map"
    92 	Theme = "Fruit"
    95 	Theme = "Fruit"
    93 
    96 
    94 	local health = 100
    97 	local health = 100
    95 
    98 
       
    99 
       
   100 	-- Fruit Assassins
       
   101 	local assasinsHats = { "NinjaFull", "NinjaStraight", "NinjaTriangle" }
       
   102 	AddTeam(teamC.name, teamC.color, "bp2", "Island", "Default", "cm_scout")
       
   103 	for i=1,table.getn(redHedgehogs) do
       
   104 		redHedgehogs[i].gear =  AddHog(redHedgehogs[i].name, 1, 100, assasinsHats[GetRandom(3)+1])
       
   105 		AnimSetGearPosition(redHedgehogs[i].gear, 2010 + 50*i, 630)
       
   106 	end
       
   107 	local assassinsColor = div(GetClanColor(GetHogClan(redHedgehogs[1].gear)), 0x100)
       
   108 
    96 	-- Hog Solo and Green Bananas
   109 	-- Hog Solo and Green Bananas
    97 	AddTeam(teamA.name, teamA.color, "Simple", "Island", "Default", "hedgehog")
   110 	AddTeam(teamA.name, teamA.color, "Simple", "Island", "Default", "hedgehog")
    98 	hero.gear = AddHog(hero.name, 0, health, "war_desertgrenadier1")
   111 	hero.gear = AddHog(hero.name, 0, health, "war_desertgrenadier1")
    99 	AnimSetGearPosition(hero.gear, hero.x, hero.y)
   112 	AnimSetGearPosition(hero.gear, hero.x, hero.y)
   100 	HogTurnLeft(hero.gear, true)
   113 	HogTurnLeft(hero.gear, true)
   102 	AnimSetGearPosition(green2.gear, green2.x, green2.y)
   115 	AnimSetGearPosition(green2.gear, green2.x, green2.y)
   103 	HogTurnLeft(green2.gear, true)
   116 	HogTurnLeft(green2.gear, true)
   104 	green3.gear = AddHog(green3.name, 0, 100, "hair_red")
   117 	green3.gear = AddHog(green3.name, 0, 100, "hair_red")
   105 	AnimSetGearPosition(green3.gear, green3.x, green3.y)
   118 	AnimSetGearPosition(green3.gear, green3.x, green3.y)
   106 	HogTurnLeft(green3.gear, true)
   119 	HogTurnLeft(green3.gear, true)
       
   120 	local heroColor = div(GetClanColor(GetHogClan(hero.gear)), 0x100)
       
   121 
   107 	-- Captain Lime
   122 	-- Captain Lime
   108 	AddTeam(teamB.name, teamB.color, "Cherry", "Island", "Default", "congo-brazzaville")
   123 	-- Returns a color that is as close as possible to the color argument
       
   124 	-- but does not equal color and otherCollision.
       
   125 	local getSimilarColor = function(color, otherCollision)
       
   126 		local goingUp = false
       
   127 		local collision1 = color
       
   128 		while(color == collision1 or color == otherCollision) do
       
   129 			-- Try out colors by varying the blue color component until
       
   130 			-- we don't collide with any of the 2 colors.
       
   131 			if ((color % 0x100) > 0) and (not goingUp) then
       
   132 				color = color - 0x1
       
   133 			else
       
   134 				goingUp = true
       
   135 				color = color + 0x1
       
   136 			end
       
   137 		end
       
   138 		return color
       
   139 	end
       
   140 	-- Captain Lime gets a fake color clore to hero's clan color.
       
   141 	-- This is a hack, but it works. See explanation at top of file
       
   142 	local cptnColor = getSimilarColor(heroColor, assassinsColor)
       
   143 	AddTeam(teamB.name, cptnColor, "Cherry", "Island", "Default", "congo-brazzaville")
   109 	green1.gear= AddHog(green1.name, 0, 100, "war_desertofficer")
   144 	green1.gear= AddHog(green1.name, 0, 100, "war_desertofficer")
   110 	AnimSetGearPosition(green1.gear, green1.x, green1.y)
   145 	AnimSetGearPosition(green1.gear, green1.x, green1.y)
   111 	-- Fruit Assassins
       
   112 	local assasinsHats = { "NinjaFull", "NinjaStraight", "NinjaTriangle" }
       
   113 	AddTeam(teamC.name, teamC.color, "bp2", "Island", "Default", "cm_scout")
       
   114 	for i=1,table.getn(redHedgehogs) do
       
   115 		redHedgehogs[i].gear =  AddHog(redHedgehogs[i].name, 1, 100, assasinsHats[GetRandom(3)+1])
       
   116 		AnimSetGearPosition(redHedgehogs[i].gear, 2010 + 50*i, 630)
       
   117 	end
       
   118 
   146 
   119 	AnimInit(true)
   147 	AnimInit(true)
   120 	AnimationSetup()
   148 	AnimationSetup()
   121 end
   149 end
   122 
   150