diff options
Diffstat (limited to 'npc/080-3/cutscene.txt')
-rw-r--r-- | npc/080-3/cutscene.txt | 236 |
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; +} + |