summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/functions/gmbot.txt20
-rw-r--r--npc/functions/news.txt3
2 files changed, 14 insertions, 9 deletions
diff --git a/npc/functions/gmbot.txt b/npc/functions/gmbot.txt
index 8ad416cce..b04c40002 100644
--- a/npc/functions/gmbot.txt
+++ b/npc/functions/gmbot.txt
@@ -149,31 +149,36 @@ OnTimer90000:
// Siege events (req. 300 aggro, 3 users, and 70% chances to begin)
if ($@MK_AGGRO >= 300 && .users >= 3 && rand(0,100) < 70 &&
is_between(1, 3, $GAME_STORYLINE) && $@MK_THROTTLE < gettimetick(2)){
+ // Delta handles the compulsory wait time between waves.
+ // 6 hours normally, 12 hours if the army is in disarray.
+ .@delta=6;
+ if ($GAME_STORYLINE == 3)
+ .@delta=12;
// Tulimshar
if (.mp$ ~= "003-*") {
announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc;
- $@MK_THROTTLE=gettimetick(2)+8*60*60;
+ $@MK_THROTTLE=gettimetick(2)+.@delta*60*60;
$@MK_SCENE=MK_SIEGE_TULIM;
donpcevent("Lieutenant Dausen::OnMKSiege");
}
// Halinarzo
else if (.mp$ ~= "009-*") {
announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc;
- $@MK_THROTTLE=gettimetick(2)+8*60*60;
+ $@MK_THROTTLE=gettimetick(2)+.@delta*60*60;
$@MK_SCENE=MK_SIEGE_HALIN;
donpcevent("Lieutenant Jacob::OnMKSiege");
}
// Hurnscald
else if (.mp$ ~= "012-*") {
announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc;
- $@MK_THROTTLE=gettimetick(2)+8*60*60;
+ $@MK_THROTTLE=gettimetick(2)+.@delta*60*60;
$@MK_SCENE=MK_SIEGE_HURNS;
donpcevent("#HurnscaldSiege::OnMKSiege");
}
// Nivalis
else if (.mp$ ~= "020-*") {
announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc;
- $@MK_THROTTLE=gettimetick(2)+8*60*60;
+ $@MK_THROTTLE=gettimetick(2)+.@delta*60*60;
$@MK_SCENE=MK_SIEGE_NIVAL;
donpcevent("Lieutenant Joshua::OnMKSiege");
}
@@ -182,18 +187,15 @@ OnTimer90000:
// If a player is nearby while the Monster King prepares, event may happen
// Minimum 60 Aggro
if (.nearby > 1 && $@MK_AGGRO >= 80 &&
- ($GAME_STORYLINE == 1 || $GAME_STORYLINE == 3)){
+ ($GAME_STORYLINE == 1 || ($GAME_STORYLINE == 3 && $@MK_THROTTLE >= gettimetick(2)) )){
// We should decide event kind, but that's NYI
announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc;
getmapxy(.@m$, .@x, .@y, UNITTYPE_MOB, $@MK);
- // 50% more monsters at night time
- if (is_night())
- $@MK_AGGRO=$@MK_AGGRO*3/2;
// Spawn stuff
areamonster(.@m$, .@x-20, .@y-20, .@x+20, .@y+20, "Monster", ManaGhost, ($@MK_AGGRO/10)+.nearby, "Monster King::OnSlaveDie");
- $@MK_AGGRO=$@MK_AGGRO/5;
+ $@MK_AGGRO=($@MK_AGGRO*$GAME_STORYLINE)/5;
}
// Maybe, just maybe, game storyline must be updated here
diff --git a/npc/functions/news.txt b/npc/functions/news.txt
index 4ee44f102..1462f869f 100644
--- a/npc/functions/news.txt
+++ b/npc/functions/news.txt
@@ -424,6 +424,9 @@ function script Journalman {
mesc l("The Monster King Army is attacking towns at random, but players already reduced their organization to @@ %%!", .@def);
mesc l("With recent player activity, the Monster king is @@!", .@st$);
break;
+ case 3:
+ mesc l("The Monster Army is in complete disarray, sieges are much less frequent.");
+ break;
default:
Exception(l("I do now know what this means: GS-@@-ICXN-@@", $GAME_STORYLINE, $@MK_TEMPVAR), RB_DEFAULT|RB_SPEECH); break;
}