summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/012-1/guards.txt22
-rw-r--r--npc/functions/siege.txt6
2 files changed, 24 insertions, 4 deletions
diff --git a/npc/012-1/guards.txt b/npc/012-1/guards.txt
index 8c3cc3f7a..1a64b89e6 100644
--- a/npc/012-1/guards.txt
+++ b/npc/012-1/guards.txt
@@ -709,11 +709,20 @@ OnTimer30000:
OnTimer60000:
debugmes "12k";
- // Setup the lieutenant/colonel level and event/designation
- // It'll be 40 + Siege*5, meaning the cap is 90.
- .@val=40+($@SIEGE_HURNS*5);
+ // We will now prepare the boss
+ // It must be stronger than players in at least 15 levels, so the mob group
+ // is different. The siege difficulty, as usual, gives an extra level to them.
+ .@val=siege_calcdiff("012-1")+15;
+ .@val+=$@SIEGE_HURNS;
+
+ // We must cap this at 100 to prevent running out of monsters
+ // Also, .@val can NEVER be less than 50, to prevent cheating :<
if (.@val > 100)
.@val=100;
+ else if (.@val < 50)
+ .@val=50;
+
+ // Get their event/designation
if (.@val >= 80)
.@ts$="Colonel";
else
@@ -725,7 +734,12 @@ OnTimer60000:
array_remove($@SIEGE_TMPMOBS, CandiedSlime);
array_remove($@SIEGE_TMPMOBS, ManaGhost);
array_remove($@SIEGE_TMPMOBS, SlimeBlast);
- .@mobId=any_of($@SIEGE_TMPMOBS);
+ if (array_entries($@SIEGE_TMPMOBS) > 0) {
+ .@mobId=any_of($@SIEGE_TMPMOBS);
+ } else {
+ .@mobId=Yetifly;
+ debugmes "ERROR, TOO FEW MOBS ON DATABASE, whaaaaaaat";
+ }
// Announce and spawn
siege_spawn("012-1", .@mobId, 1, "#HurnscaldSiege::On"+.@ts$+"Death");
diff --git a/npc/functions/siege.txt b/npc/functions/siege.txt
index 3446efae0..49c9fd5f9 100644
--- a/npc/functions/siege.txt
+++ b/npc/functions/siege.txt
@@ -85,6 +85,12 @@ function script siege_selectmob {
siege_push(JackO, .@blv);
siege_push(BlackMamba, .@blv);
siege_push(TerraniteProtector, .@blv);
+ siege_push(Reaper, .@blv);
+
+ // What if we are trying to select a boss and they're... overleveled?
+ // We need a level 105, 120 and a level 135 monsters
+ siege_push(FallenKing2, .@blv);
+ siege_push(TerraniteKing, .@blv);
// Now, mobs on only certain envs
if (.@tp & TP_TULIM) {