summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/017-10/mayor.txt2
-rw-r--r--npc/025-1/_config.txt7
-rw-r--r--npc/025-1/ctrl.c5
-rw-r--r--npc/025-2/guard.txt51
-rw-r--r--npc/functions/dungeon.txt2
5 files changed, 62 insertions, 5 deletions
diff --git a/npc/017-10/mayor.txt b/npc/017-10/mayor.txt
index 822658633..1532ab0ca 100644
--- a/npc/017-10/mayor.txt
+++ b/npc/017-10/mayor.txt
@@ -181,7 +181,7 @@
mesq l("Now go and save the world or something like that. I mean, it is not like I really cared with the world, anyway... With luck you'll even find what you are looking for.");
next;
// FALLTHROUGH
- case 20:
+ default:
setcamnpc "#ToFortress";
mesn;
mesq l("Just go over there and you'll be able to board the Airship. The travel takes a while so please be patient and good luck!");
diff --git a/npc/025-1/_config.txt b/npc/025-1/_config.txt
index 51d36e920..7a7a328b1 100644
--- a/npc/025-1/_config.txt
+++ b/npc/025-1/_config.txt
@@ -9,3 +9,10 @@ OnEnable:
OnInit:
setcells "025-1", 99, 112, 100, 112, 1, "025-1_99_112";
}
+
+025-1,100,122,0 script #025-1_100_122 NPC_HIDDEN,7,0,{
+ end;
+OnTouch:
+ doevent "#DungeonCore::OnCurse";
+ end;
+}
diff --git a/npc/025-1/ctrl.c b/npc/025-1/ctrl.c
index 7128a5bf2..cc97a55bf 100644
--- a/npc/025-1/ctrl.c
+++ b/npc/025-1/ctrl.c
@@ -21,7 +21,7 @@
// TODO: Provide a way to resume failed attempts. Move Phoenix inside.
// TODO: Testing.
// Use setwall() instead of builtin collision? (Deprecates out NPC)
-// TODO: NPCs from inside: Phoenix. Aeros Shop. Etc.
+// TODO: NPCs from inside: Bank. Barber. Aeros Shop. Etc.
// TODO: Spawn inside and outside when siege begins.
// TODO: Heartbeat - (Re)Spawn monsters inside every X seconds
@@ -145,7 +145,8 @@ OnTouch:
end;
}
-
+// TODO: 100,20 - The Impregnable Fortress Gate
+// And don't forget the curse timer
diff --git a/npc/025-2/guard.txt b/npc/025-2/guard.txt
index 0a00f0cfd..b4e187987 100644
--- a/npc/025-2/guard.txt
+++ b/npc/025-2/guard.txt
@@ -8,10 +8,59 @@
.@q=getq(General_Narrator);
if (.@q >= 21)
goto L_ShortSummary;
+ inventoryplace PurificationPotion, 3, ElixirOfLife, 1;
setpcblock(255, true);
+ mesc l("STORY MODE ENABLED. Monsters won't attack you, so you can read without worries."), 1;
+ next;
mesn;
- mesq l("Hey %s, I was informed about your arrival. You are here, good!");
+ mesq l("Hey %s, I was informed about your arrival. You are here, good!", strcharinfo(0));
+ next;
+ mesn;
+ mesq l("You see the gates over there? This is the World's Edge. The land which never had a settlement. How. is. there. a. town?!");
+ next;
+ mesn;
+ mesq l("Not only that, but it is swarming with monsters. Something is really wrong here. From our scouts which went in there, only one returned.");
+ next;
+ mesn;
+ mesq l("So, what to expect? Past this gate is a panthom town and some steel grating. Past the grating is the actual Impregnable Fortress.");
+ next;
+ mesn;
+ mesq l("We found several interest points inside, like some mines with the most precious ores in the world - like %s and even %s - along very powerful monsters. Unfortunately, it is partly flooded.", getitemlink(PlatinumOre), getitemlink(MylarinDust));
+ next;
+ mesn;
+ mesq l("We also found a small fortress and a small gothic building which might have important clues on your journey. Our first task, therefore, should be recapturing this town from our enemies!");
+ next;
+ mesn;
+ mesq l("Once that is done, the Alliance's staff will set several stands with the most important services you might need, like banking, inside the town central area.");
+ next;
+ mesn;
+ mesq l("Monsters, however, keep coming from the Impregnable Fortress. They always come on Tuesdays, although we have no idea why.");
+ next;
+ mesn;
+ mesq l("So, %s, I know you have other priorities. I don't even know why you are here - for riches? For glory, for fame? To save the world? To find out about your past? To talk with me because, well, I am just *that* cool? All of the above? Perhaps something else?", strcharinfo(0));
+ next;
+ mesn;
+ mesq l("But we cannot ignore the threat this imposes to us. You might not know our world's history, but this place should never be inhabited or else...");
+ next;
+ mesn;
+ .@find$=l("Please find %s - we will need the current world's hero to conduct the siege on the Fortress Town.", $MOST_HEROIC$);
+ .@sieg$=l("You are our hero- Please assemble a team of adventurers and raid the Fortress Town.");
+ mesq l("%s But please be quick! I feel this world doesn't have much time left!", (strcharinfo(0) == $MOST_HEROIC$ ? .@sieg$ : .@find$));
+ next;
+ mesn;
+ mesq l("Here, take this %s and these %s and good luck!", getitemlink(ElixirOfLife), getitemlink(PurificationPotion));
+ next;
+ mesc b(l(".:: Main Quest ::.")), 3;
+ msObjective($FORTRESS_STATE, l("* Invade the Fortress Town"));
+ msObjective(false, l("* Find clues"));
+ msObjective(false, l("* (optional) Save the world!"));
+ next;
setpcblock(255, false);
+ setq General_Narrator, 21;
+ getitem PurificationPotion, 3;
+ getitem ElixirOfLife, 1;
+ closeclientdialog;
+ legiontalk();
close;
L_ShortSummary:
diff --git a/npc/functions/dungeon.txt b/npc/functions/dungeon.txt
index 256b47ff3..4407dd711 100644
--- a/npc/functions/dungeon.txt
+++ b/npc/functions/dungeon.txt
@@ -10,7 +10,7 @@
// Main initialization
OnInit:
setarray .heatmap$, "007-2";
- setarray .cursemap$, "006-4", "006-4-1";
+ setarray .cursemap$, "006-4", "006-4-1", "025-1";
end;
/////////////////////////////////////////