diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/017-10/mayor.txt | 2 | ||||
-rw-r--r-- | npc/025-1/_config.txt | 7 | ||||
-rw-r--r-- | npc/025-1/ctrl.c | 5 | ||||
-rw-r--r-- | npc/025-2/guard.txt | 51 | ||||
-rw-r--r-- | npc/functions/dungeon.txt | 2 |
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; ///////////////////////////////////////// |