64 { name = "Deadly Grape" } |
65 { name = "Deadly Grape" } |
65 } |
66 } |
66 teamA.name = loc("Hog Solo and GB") |
67 teamA.name = loc("Hog Solo and GB") |
67 teamA.color = tonumber("38D61C",16) -- green |
68 teamA.color = tonumber("38D61C",16) -- green |
68 teamB.name = loc("Captain Lime") |
69 teamB.name = loc("Captain Lime") |
69 teamB.color = tonumber("38D61C",16) -- green |
70 teamB.color = tonumber("38D61D",16) -- greenish |
70 teamC.name = loc("Fruit Assasins") |
71 teamC.name = loc("Fruit Assasins") |
71 teamC.color = tonumber("FF0000",16) -- red |
72 teamC.color = tonumber("FF0000",16) -- red |
72 |
73 |
73 function onGameInit() |
74 function onGameInit() |
|
75 GameFlags = gfDisableWind |
74 Seed = 1 |
76 Seed = 1 |
75 TurnTime = 20000 |
77 TurnTime = 20000 |
76 CaseFreq = 0 |
78 CaseFreq = 0 |
77 MinesNum = 0 |
79 MinesNum = 0 |
78 MinesTime = 1 |
80 MinesTime = 1 |
79 Explosives = 0 |
81 Explosives = 0 |
80 Delay = 3 |
82 Delay = 3 |
81 SuddenDeathTurns = 100 |
83 SuddenDeathTurns = 200 |
82 HealthCaseAmount = 50 |
|
83 Map = "fruit02_map" |
84 Map = "fruit02_map" |
84 Theme = "Fruit" |
85 Theme = "Fruit" |
85 |
86 |
86 -- Hog Solo and Green Bananas |
87 -- Hog Solo and Green Bananas |
87 AddTeam(teamA.name, teamA.color, "Bone", "Island", "HillBilly", "cm_birdy") |
88 AddTeam(teamA.name, teamA.color, "Bone", "Island", "HillBilly", "cm_birdy") |
94 green3.gear = AddHog(green3.name, 0, 100, "war_desertgrenadier1") |
95 green3.gear = AddHog(green3.name, 0, 100, "war_desertgrenadier1") |
95 AnimSetGearPosition(green3.gear, green3.x, green3.y) |
96 AnimSetGearPosition(green3.gear, green3.x, green3.y) |
96 HogTurnLeft(green3.gear, true) |
97 HogTurnLeft(green3.gear, true) |
97 -- Captain Lime |
98 -- Captain Lime |
98 AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_birdy") |
99 AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_birdy") |
99 green1.gear = AddHog(green1.name, 0, 100, "war_desertgrenadier1") |
100 green1.human = AddHog(green1.name, 0, 100, "war_desertgrenadier1") |
100 AnimSetGearPosition(green1.gear, green1.x, green1.y) |
101 AnimSetGearPosition(green1.human, green1.x, green1.y) |
|
102 green1.bot = AddHog(green1.name, 1, 100, "war_desertgrenadier1") |
|
103 AnimSetGearPosition(green1.bot, green1.x, green1.y) |
|
104 green1.gear = green1.human |
101 -- Fruit Assasins |
105 -- Fruit Assasins |
102 AddTeam(teamC.name, teamC.color, "Bone", "Island", "HillBilly", "cm_birdy") |
106 AddTeam(teamC.name, teamC.color, "Bone", "Island", "HillBilly", "cm_birdy") |
103 for i=1,table.getn(redHedgehogs) do |
107 for i=1,table.getn(redHedgehogs) do |
104 redHedgehogs[i].gear = AddHog(redHedgehogs[i].name, 0, 100, "war_desertgrenadier1") |
108 redHedgehogs[i].gear = AddHog(redHedgehogs[i].name, 0, 100, "war_desertgrenadier1") |
105 AnimSetGearPosition(redHedgehogs[i].gear, 2010 + 50*i, 630) |
109 AnimSetGearPosition(redHedgehogs[i].gear, 2010 + 50*i, 630) |
122 |
126 |
123 -- Hog Solo and GB weapons |
127 -- Hog Solo and GB weapons |
124 AddAmmo(hero.gear, amFirePunch, 3) |
128 AddAmmo(hero.gear, amFirePunch, 3) |
125 AddAmmo(hero.gear, amSwitch, 100) |
129 AddAmmo(hero.gear, amSwitch, 100) |
126 AddAmmo(hero.gear, amTeleport, 100) |
130 AddAmmo(hero.gear, amTeleport, 100) |
|
131 -- Captain Lime weapons |
|
132 AddAmmo(green1.bot, amBazooka, 6) |
|
133 AddAmmo(green1.bot, amGrenade, 6) |
|
134 AddAmmo(green1.bot, amDEagle, 2) |
|
135 HideHog(green1.bot) |
127 -- Assasins weapons |
136 -- Assasins weapons |
128 AddAmmo(redHedgehogs[1].gear, amBazooka, 6) |
137 AddAmmo(redHedgehogs[1].gear, amBazooka, 6) |
129 AddAmmo(redHedgehogs[1].gear, amGrenade, 6) |
138 AddAmmo(redHedgehogs[1].gear, amGrenade, 6) |
130 for i=1,table.getn(redHedgehogs) do |
139 for i=1,table.getn(redHedgehogs) do |
131 HideHog(redHedgehogs[i].gear) |
140 HideHog(redHedgehogs[i].gear) |
142 end |
151 end |
143 |
152 |
144 -- explosives |
153 -- explosives |
145 -- I wanted to use FindPlace but doesn't accept height values... |
154 -- I wanted to use FindPlace but doesn't accept height values... |
146 local x1 = 950 |
155 local x1 = 950 |
147 local x2 = 1305 |
156 local x2 = 1306 |
148 local y1 = 1210 |
157 local y1 = 1210 |
149 local y2 = 1620 |
158 local y2 = 1620 |
150 while true do |
159 while true do |
151 if y2<y1 then |
160 if y2<y1 then |
152 break |
161 break |
153 end |
162 end |
154 if x2<x1 then |
163 if x2<x1 then |
155 x2 = 1305 |
164 x2 = 1305 |
156 y2 = y2 -60 |
165 y2 = y2 - 50 |
157 end |
166 end |
158 if not TestRectForObstacle(x2+25, y2+25, x2-25, y2-25, true) then |
167 if not TestRectForObstacle(x2+25, y2+25, x2-25, y2-25, true) then |
159 AddGear(x2, y2, gtExplosives, 0, 0, 0, 0) |
168 AddGear(x2, y2, gtExplosives, 0, 0, 0, 0) |
160 end |
169 end |
161 x2 = x2 - 30 |
170 x2 = x2 - 25 |
162 end |
171 end |
163 AddGear(3128, 1680, gtExplosives, 0, 0, 0, 0) |
172 AddGear(3128, 1680, gtExplosives, 0, 0, 0, 0) |
|
173 |
164 --mines |
174 --mines |
165 AddGear(3135, 1680, gtMine, 0, 0, 0, 0) |
175 AddGear(3135, 1680, gtMine, 0, 0, 0, 0) |
166 AddGear(3145, 1680, gtMine, 0, 0, 0, 0) |
176 AddGear(3145, 1680, gtMine, 0, 0, 0, 0) |
167 AddGear(3155, 1680, gtMine, 0, 0, 0, 0) |
177 AddGear(3155, 1680, gtMine, 0, 0, 0, 0) |
168 AddGear(3165, 1680, gtMine, 0, 0, 0, 0) |
178 AddGear(3165, 1680, gtMine, 0, 0, 0, 0) |
219 end |
231 end |
220 |
232 |
221 function onGearDelete(gear) |
233 function onGearDelete(gear) |
222 if gear == hero.gear then |
234 if gear == hero.gear then |
223 hero.dead = true |
235 hero.dead = true |
|
236 elseif gear == green1.bot then |
|
237 green1.dead = true |
224 end |
238 end |
225 end |
239 end |
226 |
240 |
227 function onAmmoStoreInit() |
241 function onAmmoStoreInit() |
228 SetAmmo(amDEagle, 0, 0, 0, 6) |
242 SetAmmo(amDEagle, 0, 0, 0, 6) |
280 AddAmmo(hero.gear, amSwitch, 0) |
301 AddAmmo(hero.gear, amSwitch, 0) |
281 AddEvent(onSurface, {hero.gear}, surface, {hero.gear}, 0) |
302 AddEvent(onSurface, {hero.gear}, surface, {hero.gear}, 0) |
282 end |
303 end |
283 |
304 |
284 function surface(gear) |
305 function surface(gear) |
285 -- TODO: after going to the surface first round must be played by the player |
|
286 WriteLnToConsole("surface first round") |
306 WriteLnToConsole("surface first round") |
287 previousHog = -1 |
307 previousHog = -1 |
288 if firstRoundAfterBattle then |
308 if tookPartInBattle then |
289 WriteLnToConsole("TRUE IT IS!") |
309 |
|
310 else |
|
311 if GetHealth(green2.gear) then |
|
312 HideHog(green2.gear) |
|
313 end |
|
314 if GetHealth(green3.gear) then |
|
315 HideHog(green3.gear) |
|
316 end |
|
317 DeleteGear(green1.human) |
|
318 RestoreHog(green1.bot) |
|
319 green1.gear = green1.bot |
|
320 AddEvent(onGaptainLimeDeath, {green1.gear}, captainLimeDeath, {green1.gear}, 0) |
290 end |
321 end |
291 WriteLnToConsole("surface in battle") |
322 WriteLnToConsole("surface in battle") |
292 inBattle = true |
323 inBattle = true |
293 end |
324 end |
294 |
325 |
|
326 function captainLimeDeath(gear) |
|
327 -- hero win in scenario of escape in 1st part |
|
328 EndGame() |
|
329 end |
295 -------------- ANIMATIONS ------------------ |
330 -------------- ANIMATIONS ------------------ |
296 |
331 |
297 function Skipanim(anim) |
332 function Skipanim(anim) |
298 if goals[anim] ~= nil then |
333 if goals[anim] ~= nil then |
299 ShowMission(unpack(goals[anim])) |
334 ShowMission(unpack(goals[anim])) |