summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/012-1/guards.txt38
1 files 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;