summaryrefslogtreecommitdiff
path: root/npc/080-3/cutscene.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/080-3/cutscene.txt')
-rw-r--r--npc/080-3/cutscene.txt236
1 files changed, 236 insertions, 0 deletions
diff --git a/npc/080-3/cutscene.txt b/npc/080-3/cutscene.txt
new file mode 100644
index 00000000..5cb03656
--- /dev/null
+++ b/npc/080-3/cutscene.txt
@@ -0,0 +1,236 @@
+// TMW Script.
+// Author:
+// Jesusalva
+// Notes:
+// Christmas 2021 - Peaceful Glade
+// FIXME: Santa must tell about Gak acting "out of character" by getting the
+// Mask of Blinking Evil. Otherwise, it'll be a seriously loose end.
+
+080-3,83,155,0 script #0803exit NPC_HIDDEN,1,0,{
+ end;
+OnTouch:
+ if (!isChristmas21()) { warp "081-1", 68, 31; end; }
+ if (!X21ED1_CLEAR()) { dispbottom l("It is too early to leave yet!"); end; }
+ mesn strcharinfo(0);
+ mesq l("Are we done here? We won't be able to return later!");
+ next;
+ if (askyesno() == ASK_YES)
+ warp "081-1", 68, 31;
+ closeclientdialog;
+ end;
+}
+
+/* The Story Books */
+080-3,116,116,0 script Book#X21B01 NPC_NO_SPRITE,{
+ mes l("Gorrik, member of the Bells Society. Thanks for attending the opera.");
+ next;
+ mes l("Along this %s, you will find the instructions regarding the plot to murder Efeniunkanduti Khan, king of Tonori.", getitemlink(OperaMask));
+ next;
+ mes l("It is of utmost importance to find out what happened to Fawkes. Therefore, wear a %s and infiltrate the palace.", getitemlink(JesterMask));
+ next;
+ mes l("Beware Akhendo-Al, prince of Tonori. Even the captain of the palace guard won't get away investigating the fire.");
+ next;
+ mes l("-- @@1226|The Silver Bell@@");
+ close;
+OnInit:
+ .distance=2;
+ end;
+}
+
+080-3,129,56,0 script Book#X21B02 NPC_NO_SPRITE,{
+ mes l("Gorrik's Diary, final entry");
+ next;
+ mes l("I was convinced my friend %s did not die on the explosion which destroyed Tulimshar palace. Therefore, I set out to find the truth about it.", "@@769|Guy Fawkes@@");
+ next;
+ mes l("But I had been fooled. King Khan has been murdered, and I was accused of regicide. All thanks to this accursed %s.", getitemlink(JesterMask));
+ next;
+ mes l("I am sure it was a plot so I would take the fall for the king's murder. However, I still have friends among the guard, whom know I would not kill your majesty. At least, not this way.");
+ next;
+ mes l("I'll take a %s, cut all my hair, and use the landbridge to reach the Woodlands. It should be weakly guarded, so hopefully, I'll make it out of Tonori safely.", getitemlink(Scissors));
+ next;
+ mes l("For precaution, I'll also stop using this name. Do not seek for me. For I shall exile myself until the last day of my life.");
+ close;
+OnInit:
+ .distance=2;
+ end;
+}
+
+080-3,46,80,0 script Book#X21B04 NPC_NO_SPRITE,{
+ mes l("Gak's Diary, firsy entry");
+ next;
+ mes l("So my new life begun, and I realized my training as a palace guard did not really cover survival in the wilderness... Or navigation on dense forests.");
+ next;
+ mes l("But just when I was about to resign myself to my fate, to die of hunger in the middle of Argaes southeastern forests... I saw what seemed like an illusion.");
+ next;
+ mes l("A candy house. With my judgment clouded from hunger, I immediately begun eating the wall, without a care in the world. It was %s!", "@@1281|shocking@@");
+ next;
+ mes l("But suddenly, a witch came out of the cottage. I ran for my life! However, being only used to deserts instead of rainforests, I could not outrun her. I thought my life was over, but...");
+ next;
+ mes l("...instead, she just scolded me. Told me how difficult was to maintain a sweet house. I never felt so much shame in my life, it was worse than if I had actually killed the king!");
+ next;
+ mes l("From now on, I'll be a witch's apprentice, to repay for what I ate. I am nervous, but... also glad for this chance, to rebuild my life, far from the conspiracies and backstabbings of Tulimshar court.");
+ close;
+OnInit:
+ .distance=2;
+ end;
+}
+
+080-3,64,120,0 script Book#X21B05 NPC_NO_SPRITE,{
+ mes l("Report to Hurnscald Government, year unknown.");
+ next;
+ mesn strcharinfo(0);
+ mes l("It describes a brutal goblin attack which decimated a small settlement southwest of Hurnscald, called Turnap."); // Later became known as Asphodel Moors
+ next;
+ mesn strcharinfo(0);
+ mes l("Apparently, the citizens there tried using %s to thwart goblin attacks, but did not account for the clan system of the goblin society.", getitemlink(GoblinMask));
+ next;
+ mesn strcharinfo(0);
+ mes l("...Needless to say, the goblins thought it was an invading tribe and decimated the town, killing and destroying anything on the vicinity. There has been ##Bno survivors##b.");
+ next;
+ mes l("The farthest body found was of a man called \"Gak\". According to the report, he likely tried to run away from the town alone but did not made it.");
+ close;
+OnInit:
+ .distance=2;
+ end;
+}
+
+080-3,98,90,0 script Package#X21B06 NPC_NO_SPRITE,{
+ mesn strcharinfo(0);
+ mes l("This bag is full of pictures. I'll briefly describe them.");
+ next;
+ mes l("1. A woman wearing a %s, close to a tall man whose face is obscured by an %s.", getitemlink(WitchHat), getitemlink(OperaMask));
+ next;
+ mes l("2. A photo of Asphodel Moors, back when it was inhabited by living beings.");
+ next;
+ mes l("3. A photo of a candy cottage. There's a man tending to it, but his face is not visible.");
+ next;
+ mes l("4. A photo of two great dragons clashing against a raging one.");
+ next;
+ mes l("5. The woman from the first photo, but without her hat and... floating? hovering? well, she is lying above the abyss.");
+ close;
+OnInit:
+ .distance=2;
+ end;
+}
+
+
+// FIXME: Alissa's NPC ID; Make more clear the sequence to players.
+080-3,85,52,0 script Alissa#ED1 NPC106,{
+ function rushed;
+ function ending;
+ if (!isChristmas21()) end;
+ if (.stable == 6) ending();
+ if (.stable >= 7) end;
+ mesn;
+ mesq l("...");
+ next;
+ mesn strcharinfo(0);
+ mesq l("Alissa seems unresponsive, as if her mind wasn't fully back in the world yet.");
+ next;
+ mesn strcharinfo(0);
+ mesq l("Perhaps I could ##Bshow her##b something?");
+ next;
+ select
+ l("I really don't know what to show."),
+ l("A Mask of Blinking Evil"),
+ l("An Opera Mask"),
+ l("A Jester Mask"),
+ l("A Witch's Hat"),
+ l("A Goblin Mask"),
+ l("A Fawkes Mask"),
+ l("Some Scissors"),
+ l("A Shock Sweet");
+ mes "";
+ if (@menu < 1) { closeclientdialog; close; }
+ if (.memory & (2 ** @menu)) {
+ mesn strcharinfo(0);
+ mesq l("...I already showed her that.");
+ close;
+ }
+ if (!.stable) {
+ mesc l("I probably should start with something about where she was supposed to be and who she is, and tell her the whole story from that.");
+ }
+
+ /* First Cutscene */
+ switch (@menu) {
+ case 2: // Blinking Mask
+ rushed(5);
+ mesc l("Suddenly, Alissa's eyes shot open.");
+ next;
+ mesn;
+ mesq l("...Gorrik is... Alive...?");
+ break;
+ case 3: // Opera Mask
+ rushed();
+ break;
+ case 4: // Jester Mask
+ rushed(3);
+ mesn;
+ mesq l("...I remember... Running from a coup'detat...");
+ next;
+ mesn;
+ mesq l("...What happened... to him...?");
+ break;
+ case 5: // Witch Hat
+ rushed(1);
+ mesn;
+ mesq l("...Gorrik...");
+ break;
+ case 6: // Goblin Mask
+ rushed(4);
+ mesn;
+ mesq l("...Yes... A slaughter...");
+ break;
+ case 7: // Fawkes Mask
+ rushed();
+ break;
+ case 8: // Scissors
+ rushed(2);
+ mesn;
+ mesq l("...His... Past?");
+ break;
+ case 9: // Shock Candy
+ rushed(0);
+ mesn;
+ mesq l("...The Candy House...");
+ break;
+ }
+ .memory = .memory | (2 ** @menu);
+ close;
+
+function rushed {
+ if (.stable == getarg(0, -1)) { .stable+=1; return; }
+ mesn strcharinfo(0);
+ mesq l("...No, I should look for more clues before showing this item.");
+ close;
+}
+
+function ending {
+ mesn;
+ mesq l("What happened to Gorrik...?");
+ next;
+ mesc l("While you do not know the details, you still try to explain the situation to Alissa.");
+ mesc l("How Gak became an undead, how long he sought for her, until finally, when he had almost given hope... How Santa decided to intervene.");
+ next;
+ mesc l("After hearing your history, you could not tell if Alissa was glad or sad.");
+ next;
+ mesn;
+ mesq l("...I'll follow.");
+ next;
+ mesn;
+ mesq l("Bring me to him.");
+ // (Poor Gak, he is up to an earful once player completes this quest...)
+ // FIXME: Prize?
+ .stable += 1;
+ X21ED1_DOCLEAR();
+ disablenpc instance_npcname(.name$);
+ close;
+}
+
+OnInit:
+ .distance=4;
+ .stable=0;
+ .memory=0;
+ end;
+}
+