97 HealthDecrease = 0 |
96 HealthDecrease = 0 |
98 WaterRise = 0 |
97 WaterRise = 0 |
99 Map = "desert01_map" |
98 Map = "desert01_map" |
100 Theme = "Desert" |
99 Theme = "Desert" |
101 |
100 |
102 -- get the check point |
|
103 checkPointReached = initCheckpoint("desert01") |
|
104 -- get hero health |
101 -- get hero health |
105 local heroHealth = 100 |
102 local heroHealth = 100 |
106 if checkPointReached > 1 and tonumber(GetCampaignVar("HeroHealth")) then |
|
107 heroHealth = tonumber(GetCampaignVar("HeroHealth")) |
|
108 end |
|
109 |
103 |
110 -- Hog Solo |
104 -- Hog Solo |
111 AddTeam(teamC.name, teamC.color, "Bone", "Island", "HillBilly", "hedgewars") |
105 AddTeam(teamC.name, teamC.color, "Bone", "Island", "HillBilly", "hedgewars") |
112 hero.gear = AddHog(hero.name, 0, heroHealth, "war_desertgrenadier1") |
106 hero.gear = AddHog(hero.name, 0, heroHealth, "war_desertgrenadier1") |
113 AnimSetGearPosition(hero.gear, hero.x, hero.y) |
107 AnimSetGearPosition(hero.gear, hero.x, hero.y) |
123 smuggler2.gear = AddHog(smuggler2.name, 1, 100, "lambda") |
117 smuggler2.gear = AddHog(smuggler2.name, 1, 100, "lambda") |
124 AnimSetGearPosition(smuggler2.gear, smuggler2.x, smuggler2.y) |
118 AnimSetGearPosition(smuggler2.gear, smuggler2.x, smuggler2.y) |
125 smuggler3.gear = AddHog(smuggler3.name, 1, 100, "beefeater") |
119 smuggler3.gear = AddHog(smuggler3.name, 1, 100, "beefeater") |
126 AnimSetGearPosition(smuggler3.gear, smuggler3.x, smuggler3.y) |
120 AnimSetGearPosition(smuggler3.gear, smuggler3.x, smuggler3.y) |
127 |
121 |
128 if checkPointReached == 1 then |
122 AnimInit(true) |
129 -- Start of the game |
|
130 elseif checkPointReached == 2 then |
|
131 AnimSetGearPosition(hero.gear, 1050, 615) |
|
132 HogTurnLeft(hero.gear, true) |
|
133 elseif checkPointReached == 3 then |
|
134 AnimSetGearPosition(hero.gear, 1680, 920) |
|
135 HogTurnLeft(hero.gear, true) |
|
136 elseif checkPointReached == 4 then |
|
137 AnimSetGearPosition(hero.gear, 1160, 1180) |
|
138 elseif checkPointReached == 5 then |
|
139 local positions = GetCampaignVar("HogsPosition") |
|
140 positions = split(positions,",") |
|
141 local x |
|
142 local y |
|
143 if positions[1] then |
|
144 x = positions[1] |
|
145 y = positions[2] |
|
146 else |
|
147 -- this should *NEVER* happen, remove? |
|
148 x = girderX+40 |
|
149 y = girderY-30 |
|
150 end |
|
151 AnimSetGearPosition(hero.gear, x, y) |
|
152 end |
|
153 |
|
154 AnimInit() |
|
155 AnimationSetup() |
123 AnimationSetup() |
156 end |
124 end |
157 |
125 |
158 function onGameStart() |
126 function onGameStart() |
159 AnimWait(hero.gear, 3000) |
127 AnimWait(hero.gear, 3000) |
160 FollowGear(hero.gear) |
128 FollowGear(hero.gear) |
161 |
129 |
162 AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0) |
130 AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0) |
163 AddEvent(onHeroAtFirstBattle, {hero.gear}, heroAtFirstBattle, {hero.gear}, 1) |
131 AddEvent(onHeroAtFirstBattle, {hero.gear}, heroAtFirstBattle, {hero.gear}, 1) |
164 AddEvent(onHeroAtCheckpoint4, {hero.gear}, heroAtCheckpoint4, {hero.gear}, 0) |
|
165 AddEvent(onHeroAtThirdBattle, {hero.gear}, heroAtThirdBattle, {hero.gear}, 0) |
132 AddEvent(onHeroAtThirdBattle, {hero.gear}, heroAtThirdBattle, {hero.gear}, 0) |
166 AddEvent(onCheckForWin1, {hero.gear}, checkForWin1, {hero.gear}, 0) |
133 AddEvent(onCheckForWin1, {hero.gear}, checkForWin1, {hero.gear}, 0) |
167 AddEvent(onCheckForWin2, {hero.gear}, checkForWin2, {hero.gear}, 0) |
134 AddEvent(onCheckForWin2, {hero.gear}, checkForWin2, {hero.gear}, 0) |
168 AddEvent(onCrateDestroyed, {hero.gear}, crateDestroyed, {hero.gear}, 0) |
135 AddEvent(onCrateDestroyed, {hero.gear}, crateDestroyed, {hero.gear}, 0) |
169 |
136 |
211 while x < 2900 do |
178 while x < 2900 do |
212 AddGear(x, 470, gtMine, 0, 0, 0, 0) |
179 AddGear(x, 470, gtMine, 0, 0, 0, 0) |
213 x = x + GetRandom(13)+8 |
180 x = x + GetRandom(13)+8 |
214 end |
181 end |
215 |
182 |
216 if checkPointReached == 1 then |
183 AddEvent(onHeroFleeFirstBattle, {hero.gear}, heroFleeFirstBattle, {hero.gear}, 1) |
217 AddEvent(onHeroFleeFirstBattle, {hero.gear}, heroFleeFirstBattle, {hero.gear}, 1) |
184 AddEvent(onHeroAtBattlePoint1, {hero.gear}, heroAtBattlePoint1, {hero.gear}, 0) |
218 AddEvent(onHeroAtCheckpoint2, {hero.gear}, heroAtCheckpoint2, {hero.gear}, 0) |
185 AddEvent(onHeroAtBattlePoint2, {hero.gear}, heroAtBattlePoint2, {hero.gear}, 0) |
219 AddEvent(onHeroAtCheckpoint3, {hero.gear}, heroAtCheckpoint3, {hero.gear}, 0) |
186 -- crates |
220 -- crates |
187 SpawnAmmoCrate(btorch1X, btorch1Y, amBlowTorch) |
221 SpawnAmmoCrate(btorch1X, btorch1Y, amBlowTorch) |
188 SpawnHealthCrate(680, 460) |
222 SpawnHealthCrate(680, 460) |
189 -- hero ammo |
223 -- hero ammo |
190 AddAmmo(hero.gear, amRope, 2) |
224 AddAmmo(hero.gear, amRope, 2) |
191 AddAmmo(hero.gear, amBazooka, 3) |
225 AddAmmo(hero.gear, amBazooka, 3) |
192 AddAmmo(hero.gear, amParachute, 1) |
226 AddAmmo(hero.gear, amParachute, 1) |
193 AddAmmo(hero.gear, amGrenade, 6) |
227 AddAmmo(hero.gear, amGrenade, 6) |
194 AddAmmo(hero.gear, amDEagle, 4) |
228 AddAmmo(hero.gear, amDEagle, 4) |
195 AddAmmo(hero.gear, amRCPlane, tonumber(getBonus(1))) |
229 AddAmmo(hero.gear, amRCPlane, tonumber(getBonus(1))) |
196 |
230 |
197 AddAnim(dialog01) |
231 AddAnim(dialog01) |
|
232 elseif checkPointReached == 2 or checkPointReached == 3 then |
|
233 ShowMission(campaignName, missionName, loc("The device part is hidden in one of the crates! Go and get it!"), -amSkip, 0) |
|
234 loadHeroAmmo() |
|
235 |
|
236 secondBattle() |
|
237 elseif checkPointReached == 4 or checkPointReached == 5 then |
|
238 ShowMission(campaignName, missionName, loc("The part device is hidden in one of the crates! Go and get it!"), -amSkip, 0) |
|
239 loadHeroAmmo() |
|
240 end |
|
241 |
198 |
242 SendHealthStatsOff() |
199 SendHealthStatsOff() |
243 end |
200 end |
244 |
201 |
245 function onNewTurn() |
202 function onNewTurn() |
345 end |
302 end |
346 return false |
303 return false |
347 end |
304 end |
348 |
305 |
349 -- saves the location of the hero and prompts him for the second battle |
306 -- saves the location of the hero and prompts him for the second battle |
350 function onHeroAtCheckpoint2(gear) |
307 function onHeroAtBattlePoint1(gear) |
351 if not hero.dead and GetX(hero.gear) > 1000 and GetX(hero.gear) < 1100 |
308 if not hero.dead and GetX(hero.gear) > 1000 and GetX(hero.gear) < 1100 |
352 and GetY(hero.gear) > 590 and GetY(hero.gear) < 700 and StoppedGear(hero.gear) then |
309 and GetY(hero.gear) > 590 and GetY(hero.gear) < 700 and StoppedGear(hero.gear) then |
353 return true |
310 return true |
354 end |
311 end |
355 return false |
312 return false |
356 end |
313 end |
357 |
314 |
358 function onHeroAtCheckpoint3(gear) |
315 function onHeroAtBattlePoint2(gear) |
359 if not hero.dead and GetX(hero.gear) > 1610 and GetX(hero.gear) < 1680 |
316 if not hero.dead and GetX(hero.gear) > 1610 and GetX(hero.gear) < 1680 |
360 and GetY(hero.gear) > 850 and GetY(hero.gear) < 1000 and StoppedGear(hero.gear) then |
317 and GetY(hero.gear) > 850 and GetY(hero.gear) < 1000 and StoppedGear(hero.gear) then |
361 return true |
|
362 end |
|
363 return false |
|
364 end |
|
365 |
|
366 function onHeroAtCheckpoint4(gear) |
|
367 if not hero.dead and GetX(hero.gear) > 1110 and GetX(hero.gear) < 1300 |
|
368 and GetY(hero.gear) > 1100 and GetY(hero.gear) < 1220 then |
|
369 return true |
318 return true |
370 end |
319 end |
371 return false |
320 return false |
372 end |
321 end |
373 |
322 |
521 AnimSay(smuggler2.gear, loc("This is seems like a wealthy hedgehog, nice ..."), SAY_THINK, 5000) |
454 AnimSay(smuggler2.gear, loc("This is seems like a wealthy hedgehog, nice ..."), SAY_THINK, 5000) |
522 AnimSwitchHog(smuggler2.gear) |
455 AnimSwitchHog(smuggler2.gear) |
523 EndTurn(true) |
456 EndTurn(true) |
524 end |
457 end |
525 |
458 |
526 function saveCheckPointLocal(cpoint) |
|
527 -- save checkpoint |
|
528 saveCheckpoint(cpoint) |
|
529 SaveCampaignVar("HeroHealth", GetHealth(hero.gear)) |
|
530 -- bazooka - grenade - rope - parachute - deagle - btorch - construct - portal - rcplane |
|
531 SaveCampaignVar("HeroAmmo", GetAmmoCount(hero.gear, amBazooka)..GetAmmoCount(hero.gear, amGrenade).. |
|
532 GetAmmoCount(hero.gear, amRope)..GetAmmoCount(hero.gear, amParachute)..GetAmmoCount(hero.gear, amDEagle).. |
|
533 GetAmmoCount(hero.gear, amBlowTorch)..GetAmmoCount(hero.gear, amGirder).. |
|
534 GetAmmoCount(hero.gear, amPortalGun)..GetAmmoCount(hero.gear, amRCPlane)) |
|
535 AnimCaption(hero.gear, loc("Checkpoint reached!"), 5000) |
|
536 end |
|
537 |
|
538 function loadHeroAmmo() |
|
539 -- hero ammo |
|
540 local ammo = GetCampaignVar("HeroAmmo") |
|
541 AddAmmo(hero.gear, amRope, tonumber(ammo:sub(3,3))) |
|
542 AddAmmo(hero.gear, amBazooka, tonumber(ammo:sub(1,1))) |
|
543 AddAmmo(hero.gear, amParachute, tonumber(ammo:sub(4,4))) |
|
544 AddAmmo(hero.gear, amGrenade, tonumber(ammo:sub(2,2))) |
|
545 AddAmmo(hero.gear, amDEagle, tonumber(ammo:sub(5,5))) |
|
546 AddAmmo(hero.gear, amBlowTorch, tonumber(ammo:sub(6,6))) |
|
547 -- weird, if 0 bazooka isn't displayed in the weapons menu |
|
548 if tonumber(ammo:sub(7,7)) > 0 then |
|
549 AddAmmo(hero.gear, amGirder, tonumber(ammo:sub(7,7))) |
|
550 end |
|
551 AddAmmo(hero.gear, amPortalGun, tonumber(ammo:sub(8,8))) |
|
552 AddAmmo(hero.gear, amRCPlane, tonumber(ammo:sub(9,9))) |
|
553 end |
|
554 |
|
555 function checkForWin() |
459 function checkForWin() |
556 if cratesFound == 0 then |
460 if cratesFound == 0 then |
557 -- have to look more |
461 -- have to look more |
558 AnimSay(hero.gear, loc("Haven't found it yet ..."), SAY_THINK, 5000) |
462 AnimSay(hero.gear, loc("Haven't found it yet ..."), SAY_THINK, 5000) |
559 cratesFound = cratesFound + 1 |
463 cratesFound = cratesFound + 1 |