8 -- TODO |
8 -- TODO |
9 -- alter map so hero may climb to the higher place |
9 -- alter map so hero may climb to the higher place |
10 -- maybe use rope challenge to go there |
10 -- maybe use rope challenge to go there |
11 -- add checkpoints |
11 -- add checkpoints |
12 -- fix the stats |
12 -- fix the stats |
13 -- add mines to the higher place/final stage |
13 -- Add first checkpoint save if icegun is taken |
14 |
14 |
15 HedgewarsScriptLoad("/Scripts/Locale.lua") |
15 HedgewarsScriptLoad("/Scripts/Locale.lua") |
16 HedgewarsScriptLoad("/Scripts/Animate.lua") |
16 HedgewarsScriptLoad("/Scripts/Animate.lua") |
17 |
17 |
18 ----------------- VARIABLES -------------------- |
18 ----------------- VARIABLES -------------------- |
19 -- globals |
19 -- globals |
|
20 local campaignName = loc("A Space Adventure") |
|
21 local missionName = loc("Ice planet, a frozen adventure!") |
20 local heroAtAntiFlyArea = false |
22 local heroAtAntiFlyArea = false |
21 local heroVisitedAntiFlyArea = false |
23 local heroVisitedAntiFlyArea = false |
22 local heroAtFinaleStep = false |
24 local heroAtFinaleStep = false |
|
25 local iceGunTaken = false |
|
26 local checkPointReached = 1 -- 1 is normal spawn |
|
27 -- dialogs |
|
28 local dialog01 = {} |
|
29 -- mission objectives |
|
30 local goals = { |
|
31 [dialog01] = {missionName, loc("Getting ready"), loc("Collect the icegun and get the device part from Thanta"), 1, 4500}, |
|
32 } |
23 -- crates |
33 -- crates |
24 local icegunY = 1950 |
34 local icegunY = 1950 |
25 local icegunX = 260 |
35 local icegunX = 260 |
26 -- hogs |
36 -- hogs |
27 local hero = {} |
37 local hero = {} |
118 AddGear(1622, 945, gtMine, 0, 0, 0, 0) |
139 AddGear(1622, 945, gtMine, 0, 0, 0, 0) |
119 AddGear(1645, 950, gtMine, 0, 0, 0, 0) |
140 AddGear(1645, 950, gtMine, 0, 0, 0, 0) |
120 AddGear(1655, 960, gtMine, 0, 0, 0, 0) |
141 AddGear(1655, 960, gtMine, 0, 0, 0, 0) |
121 AddGear(1665, 965, gtMine, 0, 0, 0, 0) |
142 AddGear(1665, 965, gtMine, 0, 0, 0, 0) |
122 |
143 |
123 |
|
124 AddGear(1800, 1000, gtMine, 0, 0, 0, 0) |
144 AddGear(1800, 1000, gtMine, 0, 0, 0, 0) |
125 AddGear(1810, 1005, gtMine, 0, 0, 0, 0) |
145 AddGear(1810, 1005, gtMine, 0, 0, 0, 0) |
126 AddGear(1820, 1010, gtMine, 0, 0, 0, 0) |
146 AddGear(1820, 1010, gtMine, 0, 0, 0, 0) |
127 AddGear(1830, 1015, gtMine, 0, 0, 0, 0) |
147 AddGear(1830, 1015, gtMine, 0, 0, 0, 0) |
128 AddGear(1840, 1020, gtMine, 0, 0, 0, 0) |
148 AddGear(1840, 1020, gtMine, 0, 0, 0, 0) |
129 |
149 |
130 |
|
131 AddGear(1900, 1020, gtMine, 0, 0, 0, 0) |
150 AddGear(1900, 1020, gtMine, 0, 0, 0, 0) |
132 AddGear(1910, 1020, gtMine, 0, 0, 0, 0) |
151 AddGear(1910, 1020, gtMine, 0, 0, 0, 0) |
133 AddGear(1920, 1020, gtMine, 0, 0, 0, 0) |
152 AddGear(1920, 1020, gtMine, 0, 0, 0, 0) |
134 AddGear(1930, 1030, gtMine, 0, 0, 0, 0) |
153 AddGear(1930, 1030, gtMine, 0, 0, 0, 0) |
135 AddGear(1940, 1040, gtMine, 0, 0, 0, 0) |
154 AddGear(1940, 1040, gtMine, 0, 0, 0, 0) |
136 |
|
137 |
155 |
138 AddGear(2130, 1110, gtMine, 0, 0, 0, 0) |
156 AddGear(2130, 1110, gtMine, 0, 0, 0, 0) |
139 AddGear(2140, 1120, gtMine, 0, 0, 0, 0) |
157 AddGear(2140, 1120, gtMine, 0, 0, 0, 0) |
140 AddGear(2180, 1120, gtMine, 0, 0, 0, 0) |
158 AddGear(2180, 1120, gtMine, 0, 0, 0, 0) |
141 AddGear(2200, 1130, gtMine, 0, 0, 0, 0) |
159 AddGear(2200, 1130, gtMine, 0, 0, 0, 0) |
158 AddEvent(onHeroFinalStep, {hero.gear}, heroFinalStep, {hero.gear}, 0) |
176 AddEvent(onHeroFinalStep, {hero.gear}, heroFinalStep, {hero.gear}, 0) |
159 AddEvent(onAntiFlyArea, {hero.gear}, antiFlyArea, {hero.gear}, 1) |
177 AddEvent(onAntiFlyArea, {hero.gear}, antiFlyArea, {hero.gear}, 1) |
160 AddEvent(onNonAntiFlyArea, {hero.gear}, nonAntiFlyArea, {hero.gear}, 1) |
178 AddEvent(onNonAntiFlyArea, {hero.gear}, nonAntiFlyArea, {hero.gear}, 1) |
161 |
179 |
162 AddAmmo(hero.gear, amJetpack, 99) |
180 AddAmmo(hero.gear, amJetpack, 99) |
163 AddAmmo(hero.gear, amBazooka, 1) |
|
164 AddAmmo(bandit1.gear, amBazooka, 5) |
181 AddAmmo(bandit1.gear, amBazooka, 5) |
165 AddAmmo(bandit2.gear, amBazooka, 4) |
182 AddAmmo(bandit2.gear, amBazooka, 4) |
166 AddAmmo(bandit3.gear, amMine, 2) |
183 AddAmmo(bandit3.gear, amMine, 2) |
167 AddAmmo(bandit3.gear, amGrenade, 3) |
184 AddAmmo(bandit3.gear, amGrenade, 3) |
168 AddAmmo(bandit4.gear, amBazooka, 5) |
185 AddAmmo(bandit4.gear, amBazooka, 5) |
169 AddAmmo(bandit5.gear, amBazooka, 5) |
186 AddAmmo(bandit5.gear, amBazooka, 5) |
170 SpawnAmmoCrate(icegunX, icegunY, amIceGun) |
187 |
|
188 if checkPointReached == 1 then |
|
189 AddAmmo(hero.gear, amBazooka, 1) |
|
190 SpawnAmmoCrate(icegunX, icegunY, amIceGun) |
|
191 AddEvent(onColumnCheckPoint, {hero.gear}, columnCheckPoint, {hero.gear}, 0) |
|
192 AddEvent(onHeroAtIceGun, {hero.gear}, heroAtIceGun, {hero.gear}, 0) |
|
193 AddAnim(dialog01) |
|
194 elseif checkPointReached == 2 then |
|
195 AddAmmo(hero.gear, amIceGun, 8) |
|
196 end |
171 |
197 |
172 end |
198 end |
173 |
199 |
174 function onNewTurn() |
200 function onNewTurn() |
175 -- round has to start if hero goes near the column |
201 -- round has to start if hero goes near the column |
264 |
310 |
265 function heroFinalStep(gear) |
311 function heroFinalStep(gear) |
266 heroAtFinaleStep = true |
312 heroAtFinaleStep = true |
267 end |
313 end |
268 |
314 |
|
315 function columnCheckPoint(gear) |
|
316 SaveCampaignVar("Ice01CheckPoint", "2") |
|
317 WriteLnToConsole("I AM HERE") |
|
318 AnimCaption(hero.gear, loc("Checkpoint reached!"), 5000) |
|
319 end |
|
320 |
|
321 function heroAtIceGun(gear) |
|
322 iceGunTaken=true |
|
323 end |
|
324 |
269 -------------- ANIMATIONS ------------------ |
325 -------------- ANIMATIONS ------------------ |
270 |
326 |
|
327 function Skipanim(anim) |
|
328 if goals[anim] ~= nil then |
|
329 ShowMission(unpack(goals[anim])) |
|
330 end |
|
331 end |
|
332 |
271 function AnimationSetup() |
333 function AnimationSetup() |
272 |
334 -- DIALOG 01 - Start, welcome to moon |
273 end |
335 AddSkipFunction(dialog01, Skipanim, {dialog01}) |
|
336 table.insert(dialog01, {func = AnimWait, args = {hero.gear, 3000}}) |
|
337 table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("In the ice planet, where ice rules..."), 5000}}) |
|
338 table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("Finaly you are here..."), SAY_SAY, 2000}}) |
|
339 table.insert(dialog01, {func = AnimWait, args = {hero.gear, 2000}}) |
|
340 table.insert(dialog01, {func = AnimSay, args = {hero.gear, loc("Hi! Nice to meet you"), SAY_SAY, 3000}}) |
|
341 table.insert(dialog01, {func = AnimWait, args = {ally.gear, 2000}}) |
|
342 table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("Listen carefuly! The bandit leader, Thanta has recently found a very strange device"), SAY_SAY, 4000}}) |
|
343 table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("He doesn't know it but this device is a part of the antigravity device"), SAY_SAY, 2500}}) |
|
344 table.insert(dialog01, {func = AnimWait, args = {hero.gear, 8000}}) |
|
345 table.insert(dialog01, {func = AnimSay, args = {hero.gear, loc("Nice, then I should get the part as soon as possible!"), SAY_SAY, 4000}}) |
|
346 table.insert(dialog01, {func = AnimWait, args = {ally.gear, 4000}}) |
|
347 table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("Be careful, your gadgets won't work in the bandit area. You should get an ice gun"), SAY_SAY, 7000}}) |
|
348 table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("There is one below us!"), SAY_SAY, 4000}}) |
|
349 table.insert(dialog01, {func = AnimWait, args = {hero.gear, 500}}) |
|
350 table.insert(dialog01, {func = AnimSwitchHog, args = {hero.gear}}) |
|
351 end |