summaryrefslogtreecommitdiff
path: root/world/map/npc/009-4/torches.txt
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/009-4/torches.txt')
-rw-r--r--world/map/npc/009-4/torches.txt299
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;
-}