summaryrefslogtreecommitdiff
path: root/npc/002-2/bleacher.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/002-2/bleacher.txt')
-rw-r--r--npc/002-2/bleacher.txt130
1 files changed, 130 insertions, 0 deletions
diff --git a/npc/002-2/bleacher.txt b/npc/002-2/bleacher.txt
new file mode 100644
index 00000000..daea556d
--- /dev/null
+++ b/npc/002-2/bleacher.txt
@@ -0,0 +1,130 @@
+
+002-2,72,92,0 script Candide NPC156,{
+ mes "[Candide]";
+ mes "\"Greetings! I am Candide the Bleacher.";
+ mes "Tulimshar is my homeland, where I learned the ancient art of bleaching.\"";
+ next;
+ mes "\"Bleaching was originally done by the sun, but now we use ash combined with special ingredients to remove color from fabric.\"";
+ next;
+ menu
+ "What is needed for the bleaching process?", L_Materials,
+ "I'd like to bleach something.", L_bleach_menu,
+ "So long.", L_close;
+
+L_Materials:
+ mes "[Candide]";
+ mes "\"For each item, I will need 3 piles of ash and 5,000 GP for the special ingredients.\"";
+ next;
+ menu
+ "I'd like to bleach something.", L_bleach_menu,
+ "So long.", L_close;
+
+L_bleach_menu:
+ if (countitem("PileOfAsh") < 3) goto L_No_Ash;
+ if (Zeny < 5000) goto L_No_Money;
+ cleararray @CANDIDE_items,0,getarraysize(@CANDIDE_items);
+ cleararray @CANDIDE_color,0,getarraysize(@CANDIDE_color);
+ cleararray @CANDIDE_menu$,"",getarraysize(@CANDIDE_menu$);
+ @w = 0;
+ freeloop 1; // do not check for infinity loop
+ callsub S_LoopArray;
+ freeloop 0; // re-enable infinity loop check
+ @w = 0;
+ @c = 0;
+ @p = 0;
+ if(@CANDIDE_menu$[0] == "") goto L_Nothing;
+ mes "[Candide]";
+ mes "\"Yes?\"";
+ next;
+ menu
+ "Nevermind.", L_close,
+ @CANDIDE_menu$[0], L_MenuItems, // base array was too big for a dynamic menu so we can't use it
+ @CANDIDE_menu$[1], L_MenuItems,
+ @CANDIDE_menu$[2], L_MenuItems,
+ @CANDIDE_menu$[3], L_MenuItems,
+ @CANDIDE_menu$[4], L_MenuItems,
+ @CANDIDE_menu$[5], L_MenuItems,
+ @CANDIDE_menu$[6], L_MenuItems,
+ @CANDIDE_menu$[7], L_MenuItems,
+ @CANDIDE_menu$[8], L_MenuItems,
+ @CANDIDE_menu$[9], L_MenuItems,
+ @CANDIDE_menu$[10], L_MenuItems,
+ @CANDIDE_menu$[11], L_MenuItems,
+ @CANDIDE_menu$[12], L_MenuItems,
+ @CANDIDE_menu$[13], L_MenuItems,
+ @CANDIDE_menu$[14], L_MenuItems,
+ @CANDIDE_menu$[15], L_MenuItems,
+ @CANDIDE_menu$[16], L_MenuItems,
+ @CANDIDE_menu$[17], L_MenuItems;
+
+S_LoopArray:
+ @c = 0;
+ callsub S_LoopColor;
+ @w = @w + 1;
+ if(@w < getarraysize($@DYE_items$)) goto S_LoopArray;
+ return;
+
+S_LoopColor:
+ if(countitem($@DYE_colors$[@c] + $@DYE_items$[@w]) > 0)
+ goto L_AddToMenu;
+ goto L_LoopColor2;
+
+L_AddToMenu:
+ @CANDIDE_items[@p] = @w;
+ @CANDIDE_color[@p] = @c;
+ @CANDIDE_menu$[@p] = $@DYE_color_names$[@c]+" "+$@DYE_item_names$[@w];
+ @p = @p + 1;
+ goto L_LoopColor2;
+
+L_LoopColor2:
+ @c = @c + 1;
+ if(@c < getarraysize($@DYE_colors$)) goto S_LoopColor;
+ return;
+
+L_Nothing:
+ mes "[Candide]";
+ mes "\"Sorry, you have nothing to bleach.\"";
+ next;
+ goto L_close;
+
+L_MenuItems:
+ if (countitem("PileOfAsh") < 3) goto L_No_Ash;
+ if (Zeny < 5000) goto L_No_Money;
+ @m = @menu - 2;
+ @it$ = $@DYE_colors$[@CANDIDE_color[@m]] + $@DYE_items$[@CANDIDE_items[@m]];
+ if(getitemlink(@it$) == "Unknown Item") mapexit;
+ delitem @it$, 1;
+ delitem "PileOfAsh", 3;
+ Zeny = Zeny - 5000;
+ getitem $@DYE_items$[@CANDIDE_items[@m]], 1;
+ goto L_Again;
+
+L_Again:
+ mes "[Candide]";
+ mes "\"Would you like to bleach something else?\"";
+ next;
+ menu
+ "Yes.", L_bleach_menu,
+ "No.", L_close;
+
+L_No_Ash:
+ mes "[Candide]";
+ mes "\"You don't have enough ash for me to bleach anything.";
+ mes "I need three piles.\"";
+ next;
+ goto L_close;
+
+L_No_Money:
+ mes "[Candide]";
+ mes "\"You don't have enough gold for me to bleach anything.";
+ mes "I need 5,000 GP for supplies.\"";
+ next;
+ goto L_close;
+
+L_close:
+ mes "[Candide]";
+ mes "\"Come again.\"";
+ close2;
+ emotion EMOTE_GRIN, strcharinfo(0);
+ end;
+}