summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-12-07 22:19:02 -0300
committerJesusaves <cpntb1@ymail.com>2021-12-07 22:19:02 -0300
commit2f729b93cbae81e9476f04c44890feb4e5f8cf3d (patch)
tree503fd0b70a9e91c90d762dc690166b7873f0a151
parent1d7b5deb0ac22a61e408e3c5502a327434841686 (diff)
downloadserverdata-2f729b93cbae81e9476f04c44890feb4e5f8cf3d.tar.gz
serverdata-2f729b93cbae81e9476f04c44890feb4e5f8cf3d.tar.bz2
serverdata-2f729b93cbae81e9476f04c44890feb4e5f8cf3d.tar.xz
serverdata-2f729b93cbae81e9476f04c44890feb4e5f8cf3d.zip
Initial draft version of the ending cutscene.
The only real cutscene I added for this event. Sorry.
-rw-r--r--db/constants.conf2
-rw-r--r--npc/080-1/final.txt80
-rw-r--r--npc/080-3/cutscene.txt1
3 files changed, 77 insertions, 6 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 822f6ebe..b7554e2c 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -3189,6 +3189,8 @@ more than one separator can be used in a row (so 12_3___456 is illegal).
NPC436:436
NPC437:437
NPC438:438
+ NPC439:439
+ NPC440:440
NPC32767:32767
// NPCs decently named
diff --git a/npc/080-1/final.txt b/npc/080-1/final.txt
index f6837f0e..b3cd0955 100644
--- a/npc/080-1/final.txt
+++ b/npc/080-1/final.txt
@@ -16,12 +16,16 @@
// - Oh, and in 2016, Gak went to visit Asphodel again.
080-1,98,41,0 script Alissa#ED2 NPC_ALISSA,{
+ if ('XMAS21ENDING) {
+ npctalkonce l("Thanks for bringing Gorrik back to me.");
+ }
end;
OnInstanceInit:
disablenpc instance_npcname(.name$);
end;
OnInit:
.distance=4;
+ .speed=125;
/* I thought in making a shop here */
/* Valentine Dress, Love Potions, Pinkie Crystal... */
/* Would be confusing and bad, so removed. */
@@ -29,14 +33,78 @@ OnInit:
}
080-1,97,41,0 script Gak#X21 NPC_GAK,{
- // FIXME: Cutscene
- // FIXME: Enablenpc Alissa#ED2
- // FIXME: Do not repeat cutscene if quest once completed
- // FIXME: Do not repeat cutscene if Alissa is enabled?
- openshop;
- closedialog;
+ if (!'XMAS21FINAL)
+ end;
+ if (!X21ED1_CLEAR())
+ end;
+ if ('XMAS21CUTSCENE)
+ end;
+ if ('XMAS21ENDING) {
+ openshop;
+ closedialog;
+ end;
+ }
+ .@gak$=instance_npcname("Gak#X21");
+ .@ali$=instance_npcname("Alissa#ED2");
+ .@m$=getmap();
+
+ // We're now running a cutscene, lock NPCs
+ 'XMAS21CUTSCENE=true;
+
+ // Position the NPCs based on Gak's maximum distance and visible window
+ unitwarp(getnpcid(.@ali$), .@m$, 97, 60);
+ sleep2(100);
+ npcwalkto(97, 42, .@ali$);
+ // Look at direction 4: Automatic?
+ sleep2(150*11); // Presumed at 150ms/tile, let she get in player window
+ npctalk l("GAK!"), .@ali$;
+ sleep2(300);
+ npctalk l("Alissa! You... You are alive!"), .@gak$;
+ sleep2(2000);
+ npctalk l("Of course I am alive, after you did that... That stupid thing! "), .@ali$;
+ sleep2(2000);
+ npctalk l("Did you forgot I can defend myself?!"), .@ali$;
+ sleep2(2000);
+ npctalk l("Well... No... But... Yes... I mean..."), .@gak$;
+ sleep2(1000);
+ npctalk l("Stop giving excuses, I don't want to hear them!"), .@ali$;
+ sleep2(2000);
+ npctalk l("Alissa..."), .@gak$;
+ sleep2(1000);
+ npctalk l("You idiot, did you really think I would be happy with you giving your life recklessy like that for me??"), .@ali$;
+ sleep2(2000);
+ npctalk l("..."), .@gak$;
+ sleep2(1000);
+ npctalk l("Also, where did you even got that ugly blinking mask."), .@ali$;
+ sleep2(2000);
+ npctalk l("You and me, we have a lot to talk."), .@ali$;
+ sleep2(2000);
+ npctalk l("Yes Alissa..."), .@gak$;
+ sleep2(2000);
+ // Let Alissa direct to her final position
+ npcwalkto(98, 41, .@ali$);
+ if (X21TYPE() == IOT_PARTY)
+ npctalk l("Thanks %s. I may have now an earful to listen, but... I'm really thankful.", strcharinfo(1)), .@gak$;
+ else
+ npctalk l("Thanks %s. I may have now an earful to listen, but... I'm really thankful.", strcharinfo(0)), .@gak$;
+ sleep2(3000);
+ npctalk l("Here, you can have this %s which Easter Bunny gave me.", b(l("Carrot"))), .@gak$;
+ sleep2(3000);
+ npctalk l("He said I could trade for a rare or even level up if I gave it to GM Santa..."), .@gak$;
+ sleep2(3000);
+ npctalk l("But Alissa is worth way more than that. You can have it."), .@gak$;
+ sleep2(2000);
+ if (X21TYPE() == IOT_PARTY) {
+ npctalk l("%s, in the name of %s, you should take it.", strcharinfo(0), strcharinfo(1)), .@gak$;
+ sleep2(2000);
+ }
+
+ // FIXME: getitem Carrot, 1;
+ // We're done
+ 'XMAS21CUTSCENE=false;
end;
+
OnInit:
.distance=4;
setarray .prizes, BlinkingEvil, BlinkingEvilRed, BlinkingEvilBlue,
diff --git a/npc/080-3/cutscene.txt b/npc/080-3/cutscene.txt
index 5cb03656..b4a2d452 100644
--- a/npc/080-3/cutscene.txt
+++ b/npc/080-3/cutscene.txt
@@ -119,6 +119,7 @@ OnInit:
function rushed;
function ending;
if (!isChristmas21()) end;
+ if (!X21BC1_CLEAR()) end;
if (.stable == 6) ending();
if (.stable >= 7) end;
mesn;