From 051a2c75f18e5df06091df7156145acc2f21ed35 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 15 Jun 2018 22:59:35 -0300 Subject: Rewrite mob spawn logic during Liberation Day --- npc/012-1/guards.txt | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/npc/012-1/guards.txt b/npc/012-1/guards.txt index c7dac93c2..84810861e 100644 --- a/npc/012-1/guards.txt +++ b/npc/012-1/guards.txt @@ -292,6 +292,7 @@ OnSet: end; OnInit: + .CYCLES=0; .@npcId = getnpcid(0, .name$); setunitdata(.@npcId, UDT_HEADTOP, GoldenWarlordPlate); // Light armor setunitdata(.@npcId, UDT_HEADMIDDLE, JeansChaps); // Pants @@ -311,9 +312,9 @@ OnDoEvent: debugmes "OnDoEvent"; mapannounce("012-1", "Find and slay the Monster Admiral! DO NOT ATTACK GUARDS. Don't let everyone die!", bc_map); .@Pl=getmapusers("012-1"); + .CYCLES=0; - monster("012-1", 65, 71, "Monster Admiral", GiantMutatedBat, 1, "Hurnsguard::OnVictory"); - monster("012-1", 65, 71, "Monster Lieutenant", NightScorpion, 1, "Hurnsguard::OnXtreem"); + // Guards won't attack the Monster Staff areamonster("012-1", 52, 45, 127, 80, "Monster Sergeant", Forain, .@Pl/2+1, "Hurnsguard::OnXtreem"); areamonster("012-1", 52, 45, 127, 80, "Monster Sergeant", Moonshroom, .@Pl/2+1, "Hurnsguard::OnXtreem"); areamonster("012-1", 52, 45, 127, 80, "Monster Soldier", AngryScorpion, .@Pl, "Hurnsguard::OnSkip"); @@ -365,9 +366,19 @@ OnTimer300000: OnTimer10000: OnTimer120000: OnTimer240000: + .CYCLES=.CYCLES+1; + + if (.CYCLES == 2) { + mapannounce("012-1", "Monster Lieutenant appears! Watch out!", bc_map); + monster("012-1", 65, 71, "Monster Lieutenant", NightScorpion, 1, "Hurnsguard::OnXtreem"); + } else if (.CYCLES == 3) { + mapannounce("012-1", "Monster Admiral appears! Kill it to liberate Hurns!", bc_map); + monster("012-1", 65, 71, "Monster Admiral", GiantMutatedBat, 1, "Hurnsguard::OnVictory"); + } + .@Pl=getmapusers("012-1"); for (.@i = 0; .@i < .@Pl; .@i++) { - .@mid=rand(1,13); + .@mid=rand(1,15); switch (.@mid) { case 1: .@monsterId = CaveMaggot ; break; @@ -390,9 +401,13 @@ OnTimer240000: case 10: .@monsterId = Bandit ; break; case 11: - .@monsterId = SlimeBlast ; break; + .@monsterId = BlackScorpion ; break; case 12: .@monsterId = rand(HouseMaggot, AngryScorpion) ; break; // Lucky bonus, probably a Bif + case 13: + .@monsterId = Pinkie ; break; + case 14: + .@monsterId = MagicGoblin ; break; default: // case 13: .@monsterId = Yeti ; break; } @@ -400,7 +415,20 @@ OnTimer240000: if (rand(1,5) % 2 == 1) bg_monster($@FK_Team2, "012-1", rand(69, 136), rand(83, 74), "Monster Soldier", .@monsterId, "Hurnsguard::OnSkip"); } - bg_monster($@FK_Team2, "012-1", rand(69, 136), rand(83, 74), "Monster Soldier", SlimeBlast, "Hurnsguard::OnSkip"); + // One slime blast per general + .@Mgg=mobcount("Hurnsguard::OnXtreem"); + for (.@i = 0; .@i < .@Mgg; .@i++) { + bg_monster($@FK_Team2, "012-1", rand(69, 136), rand(83, 74), "Monster Soldier", SlimeBlast, "Cassia::OnSkip"); + } + // One Magic Goblin or Pinkie per cycle + for (.@i = 0; .@i < .CYCLES; .@i++) { + if (rand(1,2) == 1) + bg_monster($@FK_Team2, "012-1", rand(69, 136), rand(83, 74), "Monster Soldier", Pinkie, "Hurnsguard::OnSkip"); + else + bg_monster($@FK_Team2, "012-1", rand(69, 136), rand(83, 74), "Monster Soldier", MagicGoblin, "Hurnsguard::OnSkip"); + } + + // One extra guard on every summon bg_monster($@FK_Team1, "012-1", rand(131, 136), rand(64, 80), "Additional Guard", FallenGuard2, "Cassia::OnSkip"); end; -- cgit v1.2.3-60-g2f50