89 Delay = 3 |
89 Delay = 3 |
90 HealthCaseAmount = 30 |
90 HealthCaseAmount = 30 |
91 Map = "desert01_map" |
91 Map = "desert01_map" |
92 Theme = "Desert" |
92 Theme = "Desert" |
93 |
93 |
|
94 -- get the check point |
|
95 if tonumber(GetCampaignVar("Desert01CheckPoint")) then |
|
96 checkPointReached = tonumber(GetCampaignVar("Desert01CheckPoint")) |
|
97 end |
|
98 -- get hero health |
|
99 local heroHealth = 100 |
|
100 if checkPointReached > 1 and tonumber(GetCampaignVar("HeroHealth")) then |
|
101 heroHealth = tonumber(GetCampaignVar("HeroHealth")) |
|
102 end |
|
103 |
94 -- Hog Solo |
104 -- Hog Solo |
95 AddTeam(teamC.name, teamC.color, "Bone", "Island", "HillBilly", "cm_birdy") |
105 AddTeam(teamC.name, teamC.color, "Bone", "Island", "HillBilly", "cm_birdy") |
96 hero.gear = AddHog(hero.name, 0, 100, "war_desertgrenadier1") |
106 hero.gear = AddHog(hero.name, 0, heroHealth, "war_desertgrenadier1") |
97 AnimSetGearPosition(hero.gear, hero.x, hero.y) |
107 AnimSetGearPosition(hero.gear, hero.x, hero.y) |
98 HogTurnLeft(hero.gear, true) |
108 HogTurnLeft(hero.gear, true) |
99 -- PAotH undercover scientist and chief Sandologist |
109 -- PAotH undercover scientist and chief Sandologist |
100 AddTeam(teamA.name, teamA.color, "Bone", "Island", "HillBilly", "cm_birdy") |
110 AddTeam(teamA.name, teamA.color, "Bone", "Island", "HillBilly", "cm_birdy") |
101 ally.gear = AddHog(ally.name, 0, 100, "war_desertgrenadier1") |
111 ally.gear = AddHog(ally.name, 0, 100, "war_desertgrenadier1") |
107 smuggler2.gear = AddHog(smuggler2.name, 1, 100, "tophats") |
117 smuggler2.gear = AddHog(smuggler2.name, 1, 100, "tophats") |
108 AnimSetGearPosition(smuggler2.gear, smuggler2.x, smuggler2.y) |
118 AnimSetGearPosition(smuggler2.gear, smuggler2.x, smuggler2.y) |
109 smuggler3.gear = AddHog(smuggler3.name, 1, 100, "tophats") |
119 smuggler3.gear = AddHog(smuggler3.name, 1, 100, "tophats") |
110 AnimSetGearPosition(smuggler3.gear, smuggler3.x, smuggler3.y) |
120 AnimSetGearPosition(smuggler3.gear, smuggler3.x, smuggler3.y) |
111 |
121 |
|
122 if checkPointReached == 1 then |
|
123 -- Start of the game |
|
124 elseif checkPointReached == 2 then |
|
125 AnimSetGearPosition(hero.gear, 1050, 615) |
|
126 HogTurnLeft(hero.gear, true) |
|
127 end |
|
128 |
112 AnimInit() |
129 AnimInit() |
113 AnimationSetup() |
130 AnimationSetup() |
114 end |
131 end |
115 |
132 |
116 function onGameStart() |
133 function onGameStart() |
118 FollowGear(hero.gear) |
135 FollowGear(hero.gear) |
119 |
136 |
120 AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0) |
137 AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0) |
121 AddEvent(onHeroAtFirstBattle, {hero.gear}, heroAtFirstBattle, {hero.gear}, 1) |
138 AddEvent(onHeroAtFirstBattle, {hero.gear}, heroAtFirstBattle, {hero.gear}, 1) |
122 AddEvent(onHeroFleeFirstBattle, {hero.gear}, heroFleeFirstBattle, {hero.gear}, 1) |
139 AddEvent(onHeroFleeFirstBattle, {hero.gear}, heroFleeFirstBattle, {hero.gear}, 1) |
123 |
140 AddEvent(onHeroAtCheckpoint2, {hero.gear}, heroAtCheckpoint2, {hero.gear}, 0) |
124 -- hero ammo |
141 |
125 AddAmmo(hero.gear, amRope, 2) |
|
126 AddAmmo(hero.gear, amBazooka, 3) |
|
127 AddAmmo(hero.gear, amParachute, 1) |
|
128 AddAmmo(hero.gear, amGrenade, 6) |
|
129 AddAmmo(hero.gear, amDEagle, 4) |
|
130 -- smugglers ammo |
142 -- smugglers ammo |
131 AddAmmo(smuggler1.gear, amBazooka, 2) |
143 AddAmmo(smuggler1.gear, amBazooka, 2) |
132 AddAmmo(smuggler1.gear, amGrenade, 2) |
144 AddAmmo(smuggler1.gear, amGrenade, 2) |
133 AddAmmo(smuggler1.gear, amDEagle, 2) |
145 AddAmmo(smuggler1.gear, amDEagle, 2) |
134 |
146 |
172 while x < 2900 do |
184 while x < 2900 do |
173 AddGear(x, 470, gtMine, 0, 0, 0, 0) |
185 AddGear(x, 470, gtMine, 0, 0, 0, 0) |
174 x = x + math.random(8,20) |
186 x = x + math.random(8,20) |
175 end |
187 end |
176 |
188 |
|
189 if checkPointReached == 1 then |
|
190 -- hero ammo |
|
191 AddAmmo(hero.gear, amRope, 2) |
|
192 AddAmmo(hero.gear, amBazooka, 3) |
|
193 AddAmmo(hero.gear, amParachute, 1) |
|
194 AddAmmo(hero.gear, amGrenade, 6) |
|
195 AddAmmo(hero.gear, amDEagle, 4) |
|
196 |
|
197 AddAnim(dialog01) |
|
198 elseif checkPointReached == 2 then |
|
199 ShowMission(campaignName, missionName, loc("The part is hidden in one of the crates! Go and get it!"), -amSkip, 0) |
|
200 -- hero ammo |
|
201 local ammo = GetCampaignVar("HeroAmmo") |
|
202 AddAmmo(hero.gear, amRope, tonumber(ammo:sub(3,3))) |
|
203 AddAmmo(hero.gear, amBazooka, tonumber(ammo:sub(1,1))) |
|
204 AddAmmo(hero.gear, amParachute, tonumber(ammo:sub(4,4))) |
|
205 AddAmmo(hero.gear, amGrenade, tonumber(ammo:sub(2,2))) |
|
206 AddAmmo(hero.gear, amDEagle, tonumber(ammo:sub(5,5))) |
|
207 AddAmmo(hero.gear, amBlowTorch, tonumber(ammo:sub(6,6))) |
|
208 -- weird, if 0 bazooka isn't displayed in the weapons menu |
|
209 if tonumber(ammo:sub(7,7)) > 0 then |
|
210 AddAmmo(hero.gear, amConstruction, tonumber(ammo:sub(7,7))) |
|
211 end |
|
212 AddAmmo(hero.gear, amPortalGun, tonumber(ammo:sub(8,8))) |
|
213 end |
|
214 |
177 SendHealthStatsOff() |
215 SendHealthStatsOff() |
178 AddAnim(dialog01) |
|
179 end |
216 end |
180 |
217 |
181 function onNewTurn() |
218 function onNewTurn() |
182 if CurrentHedgehog ~= hero.gear and not heroIsInBattle then |
219 if CurrentHedgehog ~= hero.gear and not heroIsInBattle then |
183 TurnTimeLeft = 0 |
220 TurnTimeLeft = 0 |
237 return false |
274 return false |
238 end |
275 end |
239 |
276 |
240 function onHeroFleeFirstBattle(gear) |
277 function onHeroFleeFirstBattle(gear) |
241 if not hero.dead and GetHealth(smuggler1.gear) and heroIsInBattle and ongoingBattle == 1 and (GetX(hero.gear) > 1450 |
278 if not hero.dead and GetHealth(smuggler1.gear) and heroIsInBattle and ongoingBattle == 1 and (GetX(hero.gear) > 1450 |
242 or (GetY(hero.gear) < GetY(smuggler1.gear)-80 or GetY(hero.gear) > GetY(smuggler1.gear)+300)) then |
279 or (GetY(hero.gear) < GetY(smuggler1.gear)-80 or GetY(hero.gear) > smuggler1.y+300)) then |
|
280 return true |
|
281 end |
|
282 return false |
|
283 end |
|
284 |
|
285 function onHeroAtCheckpoint2(gear) |
|
286 if not hero.dead and GetX(hero.gear) > 1000 and GetX(hero.gear) < 1100 |
|
287 and GetY(hero.gear) > 590 then |
243 return true |
288 return true |
244 end |
289 end |
245 return false |
290 return false |
246 end |
291 end |
247 |
292 |
257 EndGame() |
302 EndGame() |
258 end |
303 end |
259 |
304 |
260 function heroAtFirstBattle(gear) |
305 function heroAtFirstBattle(gear) |
261 WriteLnToConsole("**HERO AT FIRST BATTLE") |
306 WriteLnToConsole("**HERO AT FIRST BATTLE") |
|
307 AnimCaption(hero.gear, loc("A smuggler! Prepare for battle"), 5000) |
262 TurnTimeLeft = 0 |
308 TurnTimeLeft = 0 |
263 heroIsInBattle = true |
309 heroIsInBattle = true |
264 ongoingBattle = 1 |
310 ongoingBattle = 1 |
265 AnimSwitchHog(smuggler1.gear) |
311 AnimSwitchHog(smuggler1.gear) |
266 TurnTimeLeft = 0 |
312 TurnTimeLeft = 0 |
267 end |
313 end |
268 |
314 |
269 function heroFleeFirstBattle(gear) |
315 function heroFleeFirstBattle(gear) |
270 WriteLnToConsole("++HERO FLEE FIRST BATTLE") |
316 WriteLnToConsole("++HERO FLEE FIRST BATTLE") |
|
317 AnimSay(smuggler1.gear, loc("Run away you coward!"), SAY_SHOUT, 4000) |
271 TurnTimeLeft = 0 |
318 TurnTimeLeft = 0 |
272 heroIsInBattle = false |
319 heroIsInBattle = false |
273 ongoingBattle = 0 |
320 ongoingBattle = 0 |
|
321 end |
|
322 |
|
323 function heroAtCheckpoint2(gear) |
|
324 SaveCampaignVar("Desert01CheckPoint", "2") |
|
325 SaveCampaignVar("HeroHealth", GetHealth(hero.gear)) |
|
326 -- bazooka - grenade - rope - parachute - deagle - btorch - construct - portal |
|
327 SaveCampaignVar("HeroAmmo", GetAmmoCount(hero.gear, amBazooka)..GetAmmoCount(hero.gear, amGrenade).. |
|
328 GetAmmoCount(hero.gear, amRope)..GetAmmoCount(hero.gear, amParachute)..GetAmmoCount(hero.gear, amDEagle).. |
|
329 GetAmmoCount(hero.gear, amBlowTorch)..GetAmmoCount(hero.gear, amConstruction)..GetAmmoCount(hero.gear, amPortalGun)) |
|
330 AnimCaption(hero.gear, loc("Checkpoint reached!"), 5000) |
274 end |
331 end |
275 |
332 |
276 -------------- ANIMATIONS ------------------ |
333 -------------- ANIMATIONS ------------------ |
277 |
334 |
278 function Skipanim(anim) |
335 function Skipanim(anim) |
302 table.insert(dialog01, {func = AnimSay, args = {hero.gear, loc("OK, I'll be extra careful!"), SAY_SAY, 4000}}) |
359 table.insert(dialog01, {func = AnimSay, args = {hero.gear, loc("OK, I'll be extra careful!"), SAY_SAY, 4000}}) |
303 table.insert(dialog01, {func = AnimWait, args = {ally.gear, 2000}}) |
360 table.insert(dialog01, {func = AnimWait, args = {ally.gear, 2000}}) |
304 table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("There is the tunnel entrance"), SAY_SAY, 3000}}) |
361 table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("There is the tunnel entrance"), SAY_SAY, 3000}}) |
305 table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("Good luck!"), SAY_SAY, 3000}}) |
362 table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("Good luck!"), SAY_SAY, 3000}}) |
306 table.insert(dialog01, {func = AnimWait, args = {hero.gear, 500}}) |
363 table.insert(dialog01, {func = AnimWait, args = {hero.gear, 500}}) |
307 table.insert(dialog01, {func = AnimSwitchHog, args = {hero.gear}}) |
364 table.insert(dialog01, {func = AnimSwitchHog, args = {hero.gear}}) |
308 end |
365 end |