diff options
Diffstat (limited to 'world/map/npc/009-4/torches.txt')
-rw-r--r-- | world/map/npc/009-4/torches.txt | 299 |
1 files changed, 0 insertions, 299 deletions
diff --git a/world/map/npc/009-4/torches.txt b/world/map/npc/009-4/torches.txt deleted file mode 100644 index 0164acd4..00000000 --- a/world/map/npc/009-4/torches.txt +++ /dev/null @@ -1,299 +0,0 @@ -//# see detailed description at orum.txt -function|script|GetTorchColor -{ - if (@Torch < 0 || @Torch > 2) goto L_Error; - - set @Mask, 15; - set @shift, 4 * @Torch; - set @TorchColor, (OrumQuestTorch >> @shift) & @Mask; - return; - -L_Error: - mes "Torch number is out of range."; - close2; - return; -} - -function|script|SetTorchColor -{ - if (@Torch < 0 || @Torch > 2) goto L_Error; - if (@TorchColor < 1 || @TorchColor > 12) goto L_Error2; - - set @Mask, (15 << (4 * @Torch)); - set OrumQuestTorch, (OrumQuestTorch & (~(@Mask))) | @TorchColor << (4 * @Torch); - return; - -L_Error: - mes "Torch number is out of range."; - close2; - return; - -L_Error2: - mes "Torch color is out of range."; - close2; - return; -} - -function|script|GetTorchIntensity -{ - if (@Torch < 0 || @Torch > 2) goto L_Error; - - set @Mask, 15; - set @shift, 4 * (@Torch + 3); - set @TorchIntensity, (OrumQuestTorch >> @shift) & @Mask; - return; - -L_Error: - mes "Torch number is out of range."; - close2; - return; -} - -function|script|SetTorchIntensity -{ - if (@Torch < 0 || @Torch > 2) goto L_Error; - if (@TorchIntensity < 0 || @TorchIntensity > 2) goto L_Error2; - - set @Mask, (15 << (4 * (@Torch + 3))); - set OrumQuestTorch, (OrumQuestTorch & (~(@Mask))) | @TorchIntensity << (4 * (@Torch + 3)); - return; - -L_Error: - mes "Torch number is out of range."; - close2; - return; - -L_Error2: - mes "Torch intensity is out of range."; - close2; - return; -} - -function|script|DoneWithTorches -{ - if (OrumQuest < 11 && OrumQuest >= 8) - goto L_Return; - - if (OrumQuest < 7) goto L_Different; - - if (OrumQuest >= 11) - mes "The flame on the torch looks ordinary. Lowering the final barrier seems to have drained them of their magic."; - - if (OrumQuest < 8) - mes "Without that powder the note mentions there isn't much you can do with this torch."; - close2; - goto L_Return; - -L_Different: - mes "The flame on this torch looks different than the rest. You better tell Orum about it before doing anything."; - set OrumQuest, 6; - close2; - goto L_Return; - -L_Return: - return; -} - -function|script|TorchLoop -{ - // Variables used here: - // @Torch - pass before calling - // @TorchColor - initialized here, updated throughout - // @TorchIntensity - initialized here, updated throughout - callfunc "GetTorchColor"; - callfunc "GetTorchIntensity"; - - setarray @colors$, "transparent", - "red", "dark orange", "orange", "light orange", - "yellow", "light green", "green", "dark green", - "blue", "dark purple", "purple", "light purple"; - setarray @intensities$, "calm", "bright", "blinding"; - mes "Looking closely you notice that this torch is not like the others. This one has a " + @intensities$[@TorchIntensity] + " ##B" + @colors$[@TorchColor] + "##b tint to it."; - goto L_Color_Loop; - -L_Color_Loop: - menu - "Add Red Powder", L_Use_Red, - "Add Yellow Powder", L_Use_Yellow, - "Add Blue Powder", L_Use_Blue, - "Leave it alone.", L_Leave; - -L_Leave: - mes "The flame flickers as if it's laughing at you."; - close2; - return; - -L_Use_Red: - if (countitem("RedPowder") < 1) - goto L_No_Powder; - delitem "RedPowder", 1; - - // 0 1 2 3 4 5 6 7 8 9 a b c - // T R o Y g B p - // ^ < < < < , X . > > > > - if (@TorchColor == 1) - goto L_WrongColor; - if (2 <= @TorchColor && @TorchColor <= 5) - goto L_Color_Dec; - if (@TorchColor == 6) - goto L_Color_Dec_Wrong; - if (@TorchColor == 7) - goto L_WrongColor; - if (@TorchColor == 8) - goto L_Color_Inc_Wrong; - if (9 <= @TorchColor && @TorchColor <= 12) - goto L_Color_Inc; - - // work around an old bug - if (@TorchColor == 0) - set @TorchColor, 1; - goto L_Show_Color; - -L_Use_Yellow: - if (countitem("YellowPowder") < 1) - goto L_No_Powder; - delitem "YellowPowder", 1; - - // 0 1 2 3 4 5 6 7 8 9 a b c - // T R o Y g B p - // > > > > ^ < < < < , X . - if (1 <= @TorchColor && @TorchColor <= 4) - goto L_Color_Inc; - if (@TorchColor == 5) - goto L_WrongColor; - if (6 <= @TorchColor && @TorchColor <= 9) - goto L_Color_Dec; - if (@TorchColor == 10) - goto L_Color_Dec_Wrong; - if (@TorchColor == 11) - goto L_WrongColor; - if (@TorchColor == 12) - goto L_Color_Inc_Wrong; - - // work around an old bug - if (@TorchColor == 0) - set @TorchColor, 5; - goto L_Show_Color; - -L_Use_Blue: - if (countitem("BluePowder") < 1) - goto L_No_Powder; - delitem "BluePowder", 1; - - // 0 1 2 3 4 5 6 7 8 9 a b c - // T R o Y g B p - // < , X . > > > > ^ < < < - if (@TorchColor == 1) - goto L_Color_Dec; - if (@TorchColor == 2) - goto L_Color_Dec_Wrong; - if (@TorchColor == 3) - goto L_WrongColor; - if (@TorchColor == 4) - goto L_Color_Inc_Wrong; - if (5 <= @TorchColor && @TorchColor <= 8) - goto L_Color_Inc; - if (@TorchColor == 9) - goto L_WrongColor; - if (10 <= @TorchColor && @TorchColor <= 12) - goto L_Color_Dec; - - // work around an old bug - if (@TorchColor == 0) - set @TorchColor, 9; - goto L_Show_Color; - -L_No_Powder: - mes "You notice you're all out of that color of powder. Perhaps Orum can make you some more."; - close2; - return; - -L_Color_Dec: - set @TorchColor, @TorchColor - 1; - if (@TorchColor == 0) - set @TorchColor, 12; - goto L_Show_Color; - -L_Color_Dec_Wrong: - set @TorchColor, @TorchColor - 1; - if (@TorchColor == 0) - set @TorchColor, 12; - goto L_WrongColor; - -L_Color_Inc_Wrong: - set @TorchColor, @TorchColor + 1; - if (@TorchColor == 13) - set @TorchColor, 1; - goto L_WrongColor; - -L_Color_Inc: - set @TorchColor, @TorchColor + 1; - if (@TorchColor == 13) - set @TorchColor, 1; - goto L_Show_Color; - -L_Show_Color: - callfunc "SetTorchColor"; - misceffect 5; - mes "As your pour the powder into the flame you can see its tint transform to a " + @intensities$[@TorchIntensity] + " ##B" + @colors$[@TorchColor] + "##b."; - goto L_Color_Loop; - -L_WrongColor: - callfunc "SetTorchColor"; - set @TorchIntensity, @TorchIntensity + 1; - if (@TorchIntensity > 2) - goto L_Failed; - callfunc "SetTorchIntensity"; - misceffect 5; - mes "As you pour the powder into the flame it flares violently for a moment and then turns into a " + @intensities$[@TorchIntensity] + " ##B" + @colors$[@TorchColor] + "##b."; - goto L_Color_Loop; - -L_Failed: - mes "As you pour the powder into the flame it flares violently before bursting into your face!"; - misceffect 5; - misceffect 16; - set @TorchIntensity, 0; - callfunc "SetTorchIntensity"; - heal -Hp, 0; - close2; - return; -} - -// First Torch -009-4,68,21,0|script|Torch#1|400 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - callfunc "DoneWithTorches"; - - set @Torch, 0; - callfunc "TorchLoop"; - // unreachable - end; -} - -// Second Torch -009-4,67,42,0|script|Torch#2|400 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - callfunc "DoneWithTorches"; - - set @Torch, 1; - callfunc "TorchLoop"; - // unreachable - end; -} - -// Third Torch -009-4,33,86,0|script|Torch#3|400 -{ - callfunc "PCtoNPCRange"; - if(@npc_check) end; - callfunc "DoneWithTorches"; - - set @Torch, 2; - callfunc "TorchLoop"; - // unreachable - end; -} |