summaryrefslogblamecommitdiff
path: root/npc/080-3/cutscene.txt
blob: fae47f844e6ab7aa140f28d38cfcc4ea95aedf62 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11




                                     

                                                                            



                                                        
                                                        









                                                                                











                                                                                                                                                      


                














                                                                                                                                                                                                     


                
















                                                                                                                                                                                                                     


                















                                                                                                                                                                                          


                















                                                                                                                                          


                


 

                                                                      

                    
                              
                             
                               
                          

                  























                                                                                            


                                                                                                                                                    













































                                                                    

          







                                                                            


                                          











                                                                                                                                                    
                 
                                                                
                                        

                      

 
      


                          

        

                

              

        
 
// 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: Sequence is told by Santa... When you're locked down here =/
080-3,85,52,0	script	Alissa#ED1	NPC_ALISSA,{
    function rushed;
    function ending;
    if (!isChristmas21()) end;
    if (!X21BC1_CLEAR()) 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;
    maptimer2(getmap(), 10, instance_npcname(.name$)+"::OnFin");
    disablenpc instance_npcname(.name$);
    closeclientdialog;
    goto OnFin;
}

OnFin:
    if (!X21ED1_CLEAR()) {
        X21ED1_DOCLEAR();
    }
    end;

OnInit:
    .distance=4;
    .stable=0;
    .memory=0;
    end;
}