183 function AfterMidAnim() |
183 function AfterMidAnim() |
184 HideHedge(cyborg) |
184 HideHedge(cyborg) |
185 SetupPlace3() |
185 SetupPlace3() |
186 SetGearMessage(natives[1], 0) |
186 SetGearMessage(natives[1], 0) |
187 AddNewEvent(CheckPrincessFreed, {}, DoPrincessFreed, {}, 0) |
187 AddNewEvent(CheckPrincessFreed, {}, DoPrincessFreed, {}, 0) |
188 TurnTimeLeft = TurnTime |
188 TurnTimeLeft = 0 |
189 ShowMission(loc("Family Reunion"), loc("Salvation"), loc("Get your teammates out of their natural prison and save the princess!|Hint: Drilling holes should solve everything."), 1, 7000) |
189 ShowMission(loc("Family Reunion"), loc("Salvation"), loc("Get your teammates out of their natural prison and save the princess!|Hint: Drilling holes should solve everything."), 1, 7000) |
190 end |
190 end |
191 |
191 |
192 function SetupPlace3() |
192 function SetupPlace3() |
193 SpawnUtilityCrate(2086, 1887, amRope, 1) |
193 SpawnUtilityCrate(2086, 1887, amRope, 1) |
233 AddNewEvent(CheckGearDead, {princess}, EndMission, {}, 0) |
233 AddNewEvent(CheckGearDead, {princess}, EndMission, {}, 0) |
234 AddNewEvent(CheckCyborgsDead, {}, DoCyborgsDead, {}, 0) |
234 AddNewEvent(CheckCyborgsDead, {}, DoCyborgsDead, {}, 0) |
235 for i = 1, cyborgsNum do |
235 for i = 1, cyborgsNum do |
236 AddNewEvent(CheckGearDead, {cyborgs[i]}, DoCyborgDead, {i}, 0) |
236 AddNewEvent(CheckGearDead, {cyborgs[i]}, DoCyborgDead, {i}, 0) |
237 end |
237 end |
|
238 AddNewEvent(CheckOutOfCluster, {}, DoOutOfCluster, {}, 1) |
|
239 AddNewEvent(CheckOutOfGrenade, {}, DoOutOfGrenade, {}, 1) |
238 TurnTimeLeft = TurnTime |
240 TurnTimeLeft = TurnTime |
239 ShowMission(loc("Family Reunion"), loc("Hostage Situation"), loc("Save the princess! All your hogs must survive!|Hint: Kill the cyborgs first! Use the ammo very carefully!"), 1, 7000) |
241 ShowMission(loc("Family Reunion"), loc("Hostage Situation"), loc("Save the princess! All your hogs must survive!|Hint: Kill the cyborgs first! Use the ammo very carefully!|Hint: You might want to spare a girder for cover!"), 1, 7000) |
240 end |
242 end |
241 |
243 |
242 function SetupPlace2() |
244 function SetupPlace2() |
243 PlaceGirder(709, 564, 7) |
245 PlaceGirder(709, 564, 7) |
244 PlaceGirder(591, 677, 7) |
246 PlaceGirder(591, 677, 7) |
249 PlaceGirder(710, 1310, 7) |
251 PlaceGirder(710, 1310, 7) |
250 PlaceGirder(648, 1427, 5) |
252 PlaceGirder(648, 1427, 5) |
251 PlaceGirder(2110, 980, 0) |
253 PlaceGirder(2110, 980, 0) |
252 |
254 |
253 SpawnAmmoCrate(814, 407, amBazooka, 8) |
255 SpawnAmmoCrate(814, 407, amBazooka, 8) |
254 SpawnAmmoCrate(862, 494, amClusterBomb, 8) |
256 clusterCrate = SpawnAmmoCrate(862, 494, amClusterBomb, 8) |
255 SpawnAmmoCrate(855, 486, amBee, 5) |
257 SpawnAmmoCrate(855, 486, amBee, 5) |
256 SpawnAmmoCrate(849, 459, amGrenade, 8) |
258 grenadeCrate1 = SpawnAmmoCrate(849, 459, amGrenade, 8) |
257 SpawnAmmoCrate(2077, 847, amWatermelon, 3) |
259 SpawnAmmoCrate(2077, 847, amWatermelon, 3) |
258 SpawnAmmoCrate(2122, 847, amGrenade, 8) |
260 grenadeCrate2 = SpawnAmmoCrate(2122, 847, amGrenade, 8) |
259 |
261 |
260 SpawnUtilityCrate(747, 1577, amPickHammer, 1) |
262 SpawnUtilityCrate(747, 1577, amPickHammer, 1) |
261 SpawnUtilityCrate(496, 1757, amGirder, 2) |
263 SpawnUtilityCrate(496, 1757, amGirder, 2) |
262 SpawnUtilityCrate(1809, 1880, amGirder, 1) |
264 SpawnUtilityCrate(1809, 1880, amGirder, 1) |
263 SpawnUtilityCrate(530, 1747, amPortalGun, 1) |
265 SpawnUtilityCrate(530, 1747, amPortalGun, 1) |
324 ParseCommand("teamgone " .. loc("Natives")) |
326 ParseCommand("teamgone " .. loc("Natives")) |
325 ParseCommand("teamgone " .. loc("011101001")) |
327 ParseCommand("teamgone " .. loc("011101001")) |
326 TurnTimeLeft = 0 |
328 TurnTimeLeft = 0 |
327 end |
329 end |
328 |
330 |
|
331 function CheckOutOfCluster() |
|
332 return CheckGearDead(clusterCrate) and GetAmmoCount(natives[1], amClusterBomb) == 0 |
|
333 end |
|
334 |
|
335 function CheckOutOfGrenade() |
|
336 return CheckGearDead(grenadeCrate1) and CheckGearDead(grenadeCrate2) and GetAmmoCount(natives[1], amGrenade) == 0 |
|
337 end |
|
338 |
|
339 function DoOutOfCluster() |
|
340 clusterCrate = SpawnAmmoCrate(GetX(natives[1]) - 50, GetY(natives[1]) - 50, amClusterBomb) |
|
341 end |
|
342 |
|
343 function DoOutOfGrenade() |
|
344 grenadeCrate2 = SpawnAmmoCrate(GetX(natives[1]) - 50, GetY(natives[1]) - 50, amGrenade) |
|
345 end |
|
346 |
|
347 function CheckNeedToHide() |
|
348 if gearDead[princess] == true then |
|
349 return false |
|
350 end |
|
351 return TurnTimeLeft == 0 |
|
352 end |
|
353 |
|
354 function DoNeedToHide() |
|
355 HideHedge(princess) |
|
356 end |
329 -----------------------------Misc-------------------------------------- |
357 -----------------------------Misc-------------------------------------- |
330 function HideHedge(hedge) |
358 function HideHedge(hedge) |
331 if hedgeHidden[hedge] ~= true then |
359 if hedgeHidden[hedge] ~= true then |
332 HideHog(hedge) |
360 HideHog(hedge) |
333 hedgeHidden[hedge] = true |
361 hedgeHidden[hedge] = true |
353 if m2Choice ~= choiceAccepted or m5Choice ~= choiceEliminate then |
381 if m2Choice ~= choiceAccepted or m5Choice ~= choiceEliminate then |
354 DeleteGear(cyborgs[cyborgsNum]) |
382 DeleteGear(cyborgs[cyborgsNum]) |
355 cyborgsNum = cyborgsNum - 1 |
383 cyborgsNum = cyborgsNum - 1 |
356 end |
384 end |
357 HideHedge(cyborg) |
385 HideHedge(cyborg) |
358 AddGear(princessPos[1], princessPos[2], gtCase, 0, 0, 0, 0) |
|
359 end |
386 end |
360 |
387 |
361 function SetupEvents() |
388 function SetupEvents() |
|
389 AddNewEvent(CheckNeedToHide, {}, DoNeedToHide, {}, 1) |
362 end |
390 end |
363 |
391 |
364 function SetupAmmo() |
392 function SetupAmmo() |
365 AddAmmo(cyborgs[1], amBazooka, 100) |
393 AddAmmo(cyborgs[1], amBazooka, 100) |
366 AddAmmo(cyborgs[1], amGrenade, 100) |
394 AddAmmo(cyborgs[1], amGrenade, 100) |
378 gearDead[natives[i-6]] = false |
406 gearDead[natives[i-6]] = false |
379 end |
407 end |
380 |
408 |
381 AddTeam(loc("011101001"), 14483456, "ring", "UFO", "Robot", "cm_star") |
409 AddTeam(loc("011101001"), 14483456, "ring", "UFO", "Robot", "cm_star") |
382 cyborg = AddHog(loc("Unit 334a$7%;.*"), 0, 200, "cyborg1") |
410 cyborg = AddHog(loc("Unit 334a$7%;.*"), 0, 200, "cyborg1") |
383 princess = AddHog(loc("Fell From Heaven"), 0, 133, "tiara") |
411 princess = AddHog(loc("Fell From Heaven"), 0, 333, "tiara") |
384 gearDead[cyborg] = false |
412 gearDead[cyborg] = false |
385 gearDead[princess] = false |
413 gearDead[princess] = false |
386 |
414 |
387 AddTeam(loc("Biomechanic Team"), 14483457, "ring", "UFO", "Robot", "cm_star") |
415 AddTeam(loc("Biomechanic Team"), 14483456, "ring", "UFO", "Robot", "cm_star") |
388 for i = 1, cyborgsNum do |
416 for i = 1, cyborgsNum do |
389 cyborgs[i] = AddHog(cyborgNames[i], cyborgsDif[i], cyborgsHealth[i], "cyborg2") |
417 cyborgs[i] = AddHog(cyborgNames[i], cyborgsDif[i], cyborgsHealth[i], "cyborg2") |
390 gearDead[cyborgs[i]] = false |
418 gearDead[cyborgs[i]] = false |
391 end |
419 end |
392 cyborgsLeft = cyborgsNum |
420 cyborgsLeft = cyborgsNum |
395 AnimSetGearPosition(natives[i], unpack(nativePos[i])) |
423 AnimSetGearPosition(natives[i], unpack(nativePos[i])) |
396 end |
424 end |
397 |
425 |
398 AnimSetGearPosition(cyborg, unpack(cyborgPos)) |
426 AnimSetGearPosition(cyborg, unpack(cyborgPos)) |
399 AnimSetGearPosition(princess, unpack(princessPos)) |
427 AnimSetGearPosition(princess, unpack(princessPos)) |
|
428 AnimTurn(princess, "Left") |
400 |
429 |
401 for i = 1, cyborgsNum do |
430 for i = 1, cyborgsNum do |
402 AnimSetGearPosition(cyborgs[i], unpack(cyborgsPos[i])) |
431 AnimSetGearPosition(cyborgs[i], unpack(cyborgsPos[i])) |
403 AnimTurn(cyborgs[i], cyborgsDir[i]) |
432 AnimTurn(cyborgs[i], cyborgsDir[i]) |
404 end |
433 end |