diff options
Diffstat (limited to 'npc/081-2/logic.txt')
-rw-r--r-- | npc/081-2/logic.txt | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/npc/081-2/logic.txt b/npc/081-2/logic.txt index 30e09202..bf0e2063 100644 --- a/npc/081-2/logic.txt +++ b/npc/081-2/logic.txt @@ -19,4 +19,46 @@ OnTouch: end; } +/* 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; } + // Extract ID + .@n$=strnpcinfo(2, "_-1"); + explode(.@ni$, .@n$, "_"); + .@id=atoi(.@ni$[1]); + if (.@id < 0) { consolemes(CONSOLEMES_ERROR, "ERROR, X21 Invalid Candle"); end; } + .@c = 'X21_CANDLE[.@id]; + .@c$ = (.@c == 0 ? l("No") : (.@c == 1 ? l("Regular") : l("Magic"))); + + mes l("This candle is using %s Fire.", .@c$); + mes l("Do you want to change it?"); + mesc l("Cost: 1x %s", getitemlink(ThermalNapalm)), 1; + next; + menuint + l("No, leave it alone."), -1, + rif(.@c != 1, l("Lit a regular fire.")), 1, + rif(.@c != 2, l("Lit a magic fire.")), 2, + rif(.@c != 0, l("Remove the fire.")), 0; + mes ""; + if (@menuret < 0) { closeclientdialog; close; } + delitem ThermalNapalm, 1; + 'X21_CANDLE[.@id] = @menuret; + // Modify the flame sprite + 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 + closeclientdialog; + close; +OnInit: + .distance=1; + end; +} + +081-2,131,257,0 duplicate(#X21Candle_0) #X21Candle_1 NPC_NO_SPRITE +081-2,132,249,0 duplicate(#X21Candle_0) #X21Candle_2 NPC_NO_SPRITE +081-2,133,253,0 duplicate(#X21Candle_0) #X21Candle_3 NPC_NO_SPRITE +081-2,134,258,0 duplicate(#X21Candle_0) #X21Candle_4 NPC_NO_SPRITE +081-2,135,251,0 duplicate(#X21Candle_0) #X21Candle_5 NPC_NO_SPRITE + |