summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-11-29 00:16:38 -0300
committerJesusaves <cpntb1@ymail.com>2021-11-29 00:16:38 -0300
commit3fef87a0b577ba53c020da1fc647b17f6ca6740b (patch)
tree9708114c5e657fb37c0a720335faacd81ed7c770
parente35411d8099046cb7221ff2d9546fe3e97eec9c6 (diff)
downloadserverdata-3fef87a0b577ba53c020da1fc647b17f6ca6740b.tar.gz
serverdata-3fef87a0b577ba53c020da1fc647b17f6ca6740b.tar.bz2
serverdata-3fef87a0b577ba53c020da1fc647b17f6ca6740b.tar.xz
serverdata-3fef87a0b577ba53c020da1fc647b17f6ca6740b.zip
Techinically, you can now advance to Puzzle Area 3.
Still need some real explanation about Puzzle Areas 1 and 2, but well. One thing at a time, eh?
-rw-r--r--db/constants.conf1
-rw-r--r--npc/081-1/dungeon.txt2
-rw-r--r--npc/081-2/logic.txt7
-rw-r--r--npc/annuals/xmas/2021.txt23
4 files changed, 29 insertions, 4 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 3540f640..16941536 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -3381,6 +3381,7 @@ more than one separator can be used in a row (so 12_3___456 is illegal).
comment__: "Christmas 2021 Constants"
X21_ACCEPTED: 1
+ X21_CANDLES: 64
X21_PLANTPUZZLE: 128
X21_LEVEL3: 256
X21_RIDDLEDONE: 512
diff --git a/npc/081-1/dungeon.txt b/npc/081-1/dungeon.txt
index d0d87e18..fd125dd0 100644
--- a/npc/081-1/dungeon.txt
+++ b/npc/081-1/dungeon.txt
@@ -19,7 +19,7 @@ OnTouch:
081-1,64,34,0 script #X21_SIGN01 NPC_NO_SPRITE,{
if (!isChristmas21()) end;
- npctalk3 l("Northen Lights Dungeon - Form a party to join or enter alone. Be careful!");
+ npctalk3 l("Northern Lights Dungeon - Form a party to join or enter alone. Be careful!");
end;
OnInit:
.distance=5;
diff --git a/npc/081-2/logic.txt b/npc/081-2/logic.txt
index bf0e2063..2bb05cce 100644
--- a/npc/081-2/logic.txt
+++ b/npc/081-2/logic.txt
@@ -22,6 +22,7 @@ OnTouch:
/* Candle Puzzle */
081-2,130,255,0 script #X21Candle_0 NPC_NO_SPRITE,{
if (!countitem(ThermalNapalm)) { dispbottom(l("I don't have anything to lit this candle.")); end; }
+ if ('XMAS21CANDLE) end;
// Extract ID
.@n$=strnpcinfo(2, "_-1");
explode(.@ni$, .@n$, "_");
@@ -47,7 +48,11 @@ OnTouch:
setnpcdisplay(instance_npcname(strnpcinfo(0)), (@menuret ? (@menuret == 1 ? NPC436 : NPC437) : NPC_NO_SPRITE));
//debugmes "Sprite %s (%s) to %d", strnpcinfo(0), instance_npcname(strnpcinfo(0)), (@menuret ? (@menuret == 1 ? NPC436 : NPC437) : NPC_NO_SPRITE);
// What about 374 instead of 437?
- // TODO: Verify the puzzle state
+ // Unlock the gate once the puzzle is complete
+ if (X21CANDLE_CHECK()) {
+ delcells("X21L1@"+X21ID());
+ specialeffect(FX_MAGIC_WICKED_SPAWN, AREA, getcharid(3));
+ }
closeclientdialog;
close;
OnInit:
diff --git a/npc/annuals/xmas/2021.txt b/npc/annuals/xmas/2021.txt
index 0562fb0d..8bc59d11 100644
--- a/npc/annuals/xmas/2021.txt
+++ b/npc/annuals/xmas/2021.txt
@@ -33,6 +33,24 @@ function script X21ED1_DOCLEAR {
return;
}
+function script X21CANDLE_CHECK {
+ if ('XMAS21CANDLE) return false;
+ // NOTE: We could check here if player already finished this
+ // And skip the challenge after litting one candle?
+ if ('X21_CANDLE[0] != 'COLORCODE[0]) return false;
+ if ('X21_CANDLE[1] != 'COLORCODE[1]) return false;
+ if ('X21_CANDLE[2] != 'COLORCODE[2]) return false;
+ if ('X21_CANDLE[3] != 'COLORCODE[3]) return false;
+ if ('X21_CANDLE[4] != 'COLORCODE[4]) return false;
+ if ('X21_CANDLE[5] != 'COLORCODE[5]) return false;
+ // This instance challenge is over
+ 'XMAS21CANDLE = true;
+ // Record on player as well, just to be safe.
+ if (XMAS2021 & X21_CANDLES) return true;
+ XMAS2021 = (XMAS2021 | X21_CANDLES);
+ return true;
+}
+
function script X21SEED_CHECK {
/* Protip: You don't have to fill all spots
*
@@ -93,7 +111,7 @@ function script X21QUESTON {
}
function script X21INIT {
- .@inst = instance_create("Northen Lights", X21ID(), X21TYPE());
+ .@inst = instance_create("Northern Lights", X21ID(), X21TYPE());
// Instance must be created
if (.@inst >= 0) {
// We... Could use base name, actually, but whatever
@@ -180,7 +198,8 @@ function script X21INIT {
081-3 mapflag zone MMO
081-3 mapflag nosave 081-1,68,31
-- script #XMAS21Core NPC_HIDDEN,{
+/* Script Core */
+080-1,0,0,0 script #XMAS21Core NPC_HIDDEN,{
end;
// "#XMAS21Core"::spawn(MonsterID, {Amount=1, {Map=this}})