summaryrefslogtreecommitdiff
path: root/npc/010-2_Dimond's_Cove
diff options
context:
space:
mode:
Diffstat (limited to 'npc/010-2_Dimond's_Cove')
-rw-r--r--npc/010-2_Dimond's_Cove/_import.txt7
-rw-r--r--npc/010-2_Dimond's_Cove/_mobs.txt7
-rw-r--r--npc/010-2_Dimond's_Cove/_warps.txt9
-rw-r--r--npc/010-2_Dimond's_Cove/dimonds.txt130
-rw-r--r--npc/010-2_Dimond's_Cove/doug.txt101
-rw-r--r--npc/010-2_Dimond's_Cove/loratay.txt632
-rw-r--r--npc/010-2_Dimond's_Cove/workers.txt11
7 files changed, 897 insertions, 0 deletions
diff --git a/npc/010-2_Dimond's_Cove/_import.txt b/npc/010-2_Dimond's_Cove/_import.txt
new file mode 100644
index 00000000..0ffbdeed
--- /dev/null
+++ b/npc/010-2_Dimond's_Cove/_import.txt
@@ -0,0 +1,7 @@
+map: 010-2.gat
+npc: npc/010-2_Dimond's_Cove/workers.txt
+npc: npc/010-2_Dimond's_Cove/loratay.txt
+npc: npc/010-2_Dimond's_Cove/doug.txt
+npc: npc/010-2_Dimond's_Cove/dimonds.txt
+npc: npc/010-2_Dimond's_Cove/_warps.txt
+npc: npc/010-2_Dimond's_Cove/_mobs.txt
diff --git a/npc/010-2_Dimond's_Cove/_mobs.txt b/npc/010-2_Dimond's_Cove/_mobs.txt
new file mode 100644
index 00000000..7ccbfc8c
--- /dev/null
+++ b/npc/010-2_Dimond's_Cove/_mobs.txt
@@ -0,0 +1,7 @@
+// 010-2 Dimond's Cove mobs
+
+
+
+010-2.gat,0,0,0 script Mob010-2 -1,{
+ end;
+}
diff --git a/npc/010-2_Dimond's_Cove/_warps.txt b/npc/010-2_Dimond's_Cove/_warps.txt
new file mode 100644
index 00000000..8760c121
--- /dev/null
+++ b/npc/010-2_Dimond's_Cove/_warps.txt
@@ -0,0 +1,9 @@
+// 010-2 Dimond's Cove warps
+
+010-2.gat,27,24 warp ToCellar -1,-1,010-2.gat,35,68
+010-2.gat,32,45 warp ToOutdoor -1,-1,010-1.gat,36,95
+010-2.gat,40,27 warp To2ndFloor 1,-1,010-2.gat,82,26
+010-2.gat,36,68 warp To1stFloor -1,-1,010-2.gat,28,24
+010-2.gat,67,27 warp To3rdFloor 1,-1,010-2.gat,67,71
+010-2.gat,83,29 warp To1stFloor 1,-1,010-2.gat,40,27
+010-2.gat,67,73 warp To2ndFloor 1,-1,010-2.gat,67,28
diff --git a/npc/010-2_Dimond's_Cove/dimonds.txt b/npc/010-2_Dimond's_Cove/dimonds.txt
new file mode 100644
index 00000000..05d83b5c
--- /dev/null
+++ b/npc/010-2_Dimond's_Cove/dimonds.txt
@@ -0,0 +1,130 @@
+//
+
+new_23-1.gat,34,38,0 script Dimond 165,{
+ mes "[Dimond]";
+ mes "\"Welcome to Dimond's Cove!\"";
+ mes "";
+ mes "\"Talk to the waitress to get some Food.\"";
+ mes "";
+ mes "\"We also have shops on the 2nd Floor,";
+ mes "and an inn on the 3rd Floor.\"";
+ close;
+}
+
+new_23-1.gat,40,34,0 script Phill 157,{
+ mes "[Phil]";
+ mes "\"We're having problems with our equipment!\"";
+ next;
+ mes "[Phil]";
+ mes "\"I don't know if we can play any songs!\"";
+ close;
+}
+
+new_23-1.gat,40,37,0 script Jerry 160,{
+ mes "[Jerry]";
+ mes "\"I don't know what's wrong.\"";
+ next;
+ mes "[Jerry]";
+ mes "\"We should be able to play you music in the future!\"";
+ close;
+}
+
+new_23-1.gat,42,36,0 script Robert 162,{
+ mes "[Robert]";
+ mes "\"I hope we can figure something out!\"";
+ next;
+ mes "[Robert]";
+ mes "\"We are kinda useless if we can't play music.\"";
+ close;
+}
+
+new_23-1.gat,27,30,0 script Bar Rules 127,{
+ mes "Dimonds Cove Bar Rules";
+ next;
+ mes "No excessive drinking!";
+ mes "If your sprite starts to stagger we will ask you to leave.";
+ next;
+ mes "No offensive chat.";
+ mes "This is a nice establishment.";
+ mes "Crude and offensive behavior will be reported to TMW GM's.";
+ next;
+ mes "Please be respectful of others.";
+ mes "Not everyone has the same experience and should all be treated";
+ mes "with equal respect.";
+ next;
+ mes "Thank You,";
+ mes "Dimonds Cove Management";
+ close;
+}
+
+new_23-1.gat,71,38,0 script Store Policy 127,{
+ mes "All sales are final.";
+ mes "Returns are subject to a 50% re-stocking fee.";
+ close;
+}
+
+new_23-1.gat,77,38,0 script Store Policy 127,{
+ mes "All sales are final.";
+ mes "Returns are subject to a 50% re-stocking fee.";
+ close;
+}
+
+new_23-1.gat,36,30,0 script Directions 127,{
+ mes "This way to the Dimonds Cove Inn.";
+ mes "Five star accommodation for the weary traveler!";
+ close;
+}
+
+new_23-1.gat,80,32,0 script Dimonds Cove 1 127,{
+ mes "The Story of Dimonds Cove";
+ next;
+ mes "One day Dimond D. Stone dreamed of her own restaurant.";
+ mes "Dimond sold her food alone in this spot for some time,";
+ mes "longing for the day she would have a building.";
+ mes "She met an adventurer named Merlin outside of the";
+ mes "desert mines one day.";
+ next;
+ mes "They became friends and Dimond told Merlin about her idea.";
+ mes "Merlin was a accomplished carpenter and wanted to make a new";
+ mes "place in the world. He told Dimond that he would make her";
+ mes "restaurant for her. He gathered the tools and after much";
+ mes "hard work, Dimonds Cove was built.";
+ next;
+ mes "(See Dimonds Cove 2)";
+ close;
+}
+
+new_23-1.gat,85,32,0 script Dimonds Cove 2 127,{
+ mes "List of Events at Dimonds Cove";
+ mes "January 2008 - Construction of Dimonds Cove.";
+ close;
+}
+
+
+new_23-1.gat,71,30,0 script Inn 127,{
+ mes "Welcome to the Dimonds Cove Inn";
+ mes "Rooms are 200 gp a night.";
+ mes "Plese check in with Basil.";
+ close;
+}
+
+
+new_23-1.gat,24,27,0 shop Bartender 112,539:175,567:500,568:500
+
+new_23-1.gat,32,34,0 shop Waitress 139,519:100,533:150,534:90,562:500,676:200
+
+new_23-1.gat,85,41,0 shop Blacksmith 146,545:20000,529:5,625:20000,626:50000,603:-1
+
+new_23-1.gat,65,41,0 shop General Store 137,586:1000,524:1600,544:10000,632:10000,528:1000
+
+new_23-1.gat,75,68,0 script Basil 107,{
+ set @npcName$, "[Basil the Inn Keeper]";
+ set @cost, 200;
+ callfunc "Inn";
+}
+
+new_23-1.gat,33,25,0 script Chef 148,{
+ mes "[Chef]";
+ mes "I'm too busy right now to talk.";
+ close;
+}
diff --git a/npc/010-2_Dimond's_Cove/doug.txt b/npc/010-2_Dimond's_Cove/doug.txt
new file mode 100644
index 00000000..301ae9a7
--- /dev/null
+++ b/npc/010-2_Dimond's_Cove/doug.txt
@@ -0,0 +1,101 @@
+new_23-1.gat,68,87,0 script Doug 113,{
+ if(CaveSnakeLamp == 1) goto L_State2;
+ if(CaveSnakeLamp == 2) goto L_Done;
+ set @TEMP,rand(4);
+ if(@TEMP == 0) goto L_0;
+ if(@TEMP == 1) goto L_1;
+ if(@TEMP == 2) goto L_2;
+ if(@TEMP == 3) goto L_3;
+
+L_0:
+ mes "[Doug]";
+ mes "\"I need 40 more [Cave Snake Lamps] to make my light!\"";
+ next;
+ goto L_Question;
+L_1:
+ mes "[Doug]";
+ mes "\"This lamp should light up this whole place! I just need [40 Cave Snake Lamps]\"";
+ next;
+ goto L_Question;
+L_2:
+ mes "[Doug]";
+ mes "\"This is gonna be bright! A must have for anyone! All i need is a few parts...\"";
+ goto main1;
+
+L_3:
+ mes "[Doug]";
+ mes "\"Can you get me 40 [Cave Snake Lamps]? I need them to get this light finished.\"";
+ next;
+ goto L_Question;
+
+L_Question:
+ mes "[Doug]";
+ mes "\"Will you help me find 40 [Cave Snake Lamps]?\"";
+ next;
+ menu
+ "Yes", L_Sure,
+ "No", close;
+
+L_Sure:
+ set CaveSnakeLamp, 1;
+ set @TEMP,rand(4);
+ if(@TEMP == 0) goto J_0;
+ if(@TEMP == 1) goto J_1;
+ if(@TEMP == 2) goto J_2;
+ if(@TEMP == 3) goto J_3;
+
+J_0:
+ mes "[Doug]";
+ mes "\"Thank you!\"";
+ next;
+ goto L_Go;
+
+J_1:
+ mes "[Doug]";
+ mes "\"I don't know how to thank you enough!\"";
+ next;
+ goto L_Go;
+
+J_2:
+ mes "[Doug]";
+ mes "\"I will pay you when you get them!\"";
+ next;
+ goto L_Go;
+
+J_3:
+ mes "[Doug]";
+ mes "\"I'm sure I will give a small reward. :D\"";
+ next;
+ goto L_Go;
+
+L_Go:
+ mes "[Doug]";
+ mes "\"Now please go get me 40 [Cave Snake Lamps]\"";
+ close;
+
+L_State2:
+ if(countitem(612) >= 40) goto L_Have;
+ mes "[Doug]";
+ mes "\"Please help me collect 40 [Cave Snake Lamps]!\"";
+ close;
+
+L_Have:
+ delitem 612, 40;
+ mes "[Doug]";
+ mes "\"Cool! Now I can make this light!\"";
+ next;
+
+ mes "[Doug]";
+ mes "\"Here's what I got to give you!\"";
+ next;
+
+ set zeny, zeny + 2000;
+ set CaveSnakeLamp, 2;
+ close;
+
+L_Done:
+ mes "[Doug]";
+ mes "\"Thanks for your help! Those snakes sure have bright lamps!\"";
+ close;
+}
+
diff --git a/npc/010-2_Dimond's_Cove/loratay.txt b/npc/010-2_Dimond's_Cove/loratay.txt
new file mode 100644
index 00000000..744557e7
--- /dev/null
+++ b/npc/010-2_Dimond's_Cove/loratay.txt
@@ -0,0 +1,632 @@
+new_23-1.gat,85,85,0 script Lora Tay 151,{
+
+ set @COTTON, 660;
+ set @SILK_COCOON, 718;
+
+ set @SILK_ROBE, 720;
+ set @ROBE_COCOONS_NR, 150; // must be multiple of ten
+ set @ROBE_ZENY, 10000;
+
+ if (QUEST_WG_state == 10)
+ goto L_agostine_menu;
+ if (QUEST_WG_state >= 11)
+ goto L_regular_intro;
+
+ set @t, rand(3);
+ if (@t == 0) goto L_intro_0;
+ if (@t == 1) goto L_intro_1;
+
+ mes "You see a middle-aged woman furiously sewing away at what appears to be a very expensive dress. Her fingers are moving so nimbly that you find it near-impossible to follow the needle.";
+
+ goto L_intro_over;
+L_intro_0:
+ mes "You notice a middle-aged woman carefully drawing lines on a large sheet of cotton.";
+
+ goto L_intro_over;
+L_intro_1:
+ mes "You see a middle-aged woman cautiously but surprisingly swiftly cutting out shapes from a huge cotton sheet. The scissors glide along the cloth as if it were butter, never leaving the premarked lines.";
+
+L_intro_over:
+ next;
+
+ mes "She suddenly stops and looks up.";
+ next;
+
+ mes "\"Now who are you, and what are you doing here?\"";
+ mes "She squints, pushes her thick spectacles up the bridge of her nose and eyes you suspiciously.";
+ next;
+
+ set @agostine_msg0$, "";
+ set @agostine_msg1$, "";
+
+ if (QUEST_WG_state >= 1)
+ set @agostine_msg0$, "Do you know Agostine?";
+ if ((QUEST_WG_state >= 9) && (countitem(655)))
+ set @agostine_msg1$, "Can you make fur boots, like Agostine?";
+
+ menu "Hello! My name is " + strcharinfo(0) + ".", L_hello_0,
+ "Hello; are you a tailor?", L_hello_1,
+ "Can you make something for me?", L_hello_2,
+ @agostine_msg0$, L_agostine_0,
+ @agostine_msg1$, L_agostine_1;
+
+L_hello_0:
+ mes "She raises an eyebrow.";
+ mes "\"That,\", she notes dryly, \"is hardly my fault. And now I would greatly appreciate it if you were to get out of here and leave me to my work!\"";
+ next;
+ close;
+
+L_hello_1:
+ mes "She frowns.";
+ mes "\"No, I am an accupuncturist, I just happen to practice on cloth! Get out of here with your silly questions!\"";
+ next;
+ close;
+
+L_hello_2:
+ mes "She glares at you indignantly.";
+ mes "\"Do you even know whom you are talking to? I am Lora Tay, greatest of the seven seamstresses of the South!\"";
+ next;
+ mes "[Lora Tay the Seamstress]";
+ mes "\"I do not work for petty peasants or arrogant adventurers. Get out of my sight!\"";
+ mes "She waves you away and returns to her work.";
+ next;
+ close;
+
+
+L_agostine_0:
+ if (QUEST_WG_state < 1) close;
+ mes "She shoots an incensed glare at you.";
+ mes "\"Ah, Agostine! The 'legendary tailor'! Now who has not heard of him, been inspired by him! Such charisma! Such popularity! Such unprecedented lack of talent!\"";
+ mes "You notice that she prononuces the 't's as if she were trying to slap someone.";
+ next;
+ mes "\"Please spare me your tales of this fool. He couldn't mend a sock without getting himself trapped inside!\"";
+ mes "She frowns and turns back to her work, clearly not interested in discussing the matter further.";
+ close;
+
+L_agostine_1:
+ if ((QUEST_WG_state < 9) || (countitem (655) == 0)) close;
+ mes "[Lora Tay the Seamstress]";
+ mes "She glares at your boots, her lips forming barely more than a thin line. Deep furrows form above her brows.";
+ mes "\"I can't believe it! He copied Illana's design but used fluffy fur in place of ice wolf fur-- Fluffy fur! Of all things! Who would wear such an atrocity of fashion! Everyone knows that you need ice-white, not pale-white, to go with such leather!\"";
+ next;
+ mes "[Lora Tay the Seamstress]";
+ mes "She looks at them more closely.";
+ mes "\"This insolent upstart! Even worse, he copied my very own double-backward cross-stitch pattern... I can't believe it!\"";
+ next;
+ mes "[Lora Tay the Seamstress]";
+ mes "Angry red spots begin to form on her cheeks.";
+ mes "\"Get those... things out of my sight before I forget myself!\"";
+
+ if (QUEST_WG_state == 9)
+ set QUEST_WG_state, 10;
+
+ next;
+ close;
+
+L_agostine_menu:
+ mes "[Lora Tay the Seamstress]";
+ mes "The seamstress looks up at you from her work.";
+ mes "\"I do hope that you have not had any more dealings with this... this lumberjack of a tailor?\"";
+ next;
+
+ if (countitem(563) > 0)
+ menu "You mean Agostine?", L_agostine_3,
+ "Actually, he also made me gloves...", L_agostine_2,
+ "Why don't you like him?", L_agostine_4,
+ "No, none, really.", L_agostine_5;
+
+ menu "You mean Agostine?", L_agostine_3,
+ "Why don't you like him?", L_agostine_4,
+ "No, none, really.", L_agostine_5;
+
+L_agostine_2:
+ if ((QUEST_WG_state < 9) || (countitem(563) == 0)) close;
+ mes "[Lora Tay the Seamstress]";
+ mes "Lora inspects your gloves, shock apparent on her face.";
+ mes "\"Winter gloves? And he managed the join stitches without adding a single crease... no, that can't be the Agostine we were talking about...\"";
+ mes "Without asking, she takes your gloves and inspects them further.";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Triple inverted crossbar... he stole another of my stitching patterns! Except... no, that couldn't hold... what kind of yarn...\"";
+ mes "Torn between excitement, worry, and latent disgust, she frantically turns the gloves from side to side, looking for obvious flaws, her face reddening.";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "\"No, it's perfect... Inconceivable! How could that little upstart... I don't believe it!\"";
+ mes "Breathing heavily with something that might be anger or confusion, she turns them inside out.";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "She slides her fingers over the now-exposed inside whilst the color of her face approaches that of an over-ripe tomato.";
+ mes "\"Almost perfectly smooth...\", she whispers.";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "She jumps up in a fit of sudden rage.";
+ mes "\"That's impossible! Where did he learn to sew like that! How did he cut the shapes so perfectly! When did he...";
+ mes "Suddenly, she breaks into a cough.";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "\"*cough* ... can't possibly... *cough*...\"";
+ mes "Lora sinks back on her chair, trying to control her cough.";
+ next;
+
+ if (countitem(541))
+ menu "(sneak out of the room)", L_end,
+ "Are you alright?", -,
+ "Here, have a bottle of water...", L_give_water,
+ "Can I help you?", -;
+
+ if (countitem(541) == 0)
+ menu "(sneak out of the room)", L_end,
+ "Are you alright?", -,
+ "Can I help you?", -;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "She holds out your gloves for you to pick up, then waves you out of the room. Fortunately, her cough seems to be slowly subsiding.";
+ next;
+ close;
+
+L_agostine_3:
+ mes "[Lora Tay the Seamstress]";
+ mes "She frowns at you.";
+ mes "\"What other self-absorbed tailor-pretends with the sewing skill of a mouboo are there around? Stop wasting my time.\"";
+ next;
+ close;
+
+L_agostine_4:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Is it not obvious? We are talking about someone so self-absorbed that he chose to ignore the advice of myself, greatest of the seven southern seamstresses! I cannot stand such arrogance.\"";
+ next;
+ close;
+
+L_agostine_5:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Good for you. That arrogant good-for-nothing couldn't tell a piece of cotton from chain mail if wiped his nose with it!\"";
+ close;
+
+L_no_water:
+ mes "Checking more closely, you realize that you are out of water.";
+ mes "You apologise to Lora, though it fortunately seems that her cough is subsiding.";
+ mes "She waves you out of the room.";
+ next;
+ close;
+
+L_regular_intro:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Ah, you again. Is there anything in particular you need?\"";
+ next;
+ goto L_main_menu;
+
+L_give_water:
+ if (countitem(541) == 0) goto L_no_water;
+ delitem 541, 1;
+ set QUEST_WG_state, 11;
+
+ set @xpval, 50000;
+
+ getexp @xpval, 0;
+ mes "[Lora Tay the Seamstress]";
+
+ mes "Lora grabs your water bottle and take a deep sip. Slowly, her head regains a more natural color. As she puts the bottle down, her cough seems to have subsided.";
+ mes "\"Thank you, dear; that was just the right thing at the right time.\"";
+ mes "[You gain " + @xpval + " experience points]";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "She hands you the winter gloves again.";
+ mes "\"Now what happened I don't know, but this wasn't made by the Agostine I remember. But I shan't be made a fool out of by one such as him.\"";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "\"If HE can sew petty every-day items for ordinary peasants, then so can I. Very well, is there anything in particular that you need made? I shall show you how a proper seamstress operates!\"";
+ next;
+
+L_main_menu:
+ menu "Can you trim something for me?", L_trim,
+ "Can you lengthen something for me?", L_lengthen,
+ "Can you make me a shirt?", L_shirt,
+ "Can you make me a tank top?", L_tanktop,
+ "Can you make me a cape?", L_cape,
+ "Can you make fur boots for me?", -,
+ "Can you make winter gloves me?", -,
+ "Can you sew a robe for me?", L_robe,
+ "Goodbye for now!", L_end;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "\"From what? Fluffy fur? I won't work with such lowly materials.\"";
+ next;
+ goto L_main_menu;
+
+L_trim:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Trimming... you mean that you can't do that yourself? Well, alright... I suppose I should charge 100 GP and do it.\"";
+ mes "\"Alright. What is it that you want trimmed?\"";
+ next;
+
+ set @default_choice$, "Never mind.";
+ setarray @items, 1202, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059,
+ 688, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099;
+ setarray @item_names$, "cotton shirt", "red cotton shirt", "green cotton shirt", "dark blue cotton shirt", "yellow cotton shirt", "light blue cotton shirt", "pink cotton shirt", "black cotton shirt", "orange cotton shirt", "puple cotton shirt", "cotton shirt 9",
+ "tank top", "red tank top", "green tank top", "dark blue tank top", "yellow tank top", "light blue tank top", "pink tank top", "black tank top", "orange tank top", "purple tank top", "tank top 9";
+ set @items_nr, 22;
+ callsub SUB_pick_one_of_many_items;
+ if (@item == 0) goto L_main_menu;
+
+ set @delitem, @item;
+ set @genitem, 0;
+ if (@item == 1202) set @genitem, 688;
+ if (@item == 688) set @genitem, 689;
+ if (@item >= 2090 && @item <= 2099) set @genitem, @item + 30;
+ if (@item >= 2050 && @item <= 2059) set @genitem, @item + 40;
+
+ if (@genitem == 0) goto L_trim_impossible;
+ if (zeny < 100) goto L_trim_nozeny;
+
+ delitem @delitem, 1;
+ getitem @genitem, 1;
+ set zeny, zeny - 100;
+ mes "[Lora Tay the Seamstress]";
+ mes "";
+ mes "\"There you are, dear.\"";
+ next;
+ goto L_main_menu;
+
+L_trim_impossible:
+ mes "[Lora Tay the Seamstress]"; // INTERNAL ERROR
+ mes "\"I don't really want to shorten this any more.\"";
+ next;
+
+ goto L_main_menu;
+
+L_trim_nozeny:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Not enough GP? Well, just do it yourself-- trimming really is trivial.\"";
+ next;
+
+ goto L_main_menu;
+
+L_lengthen:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Naturally, I will need a piece of cotton to sew onto it; I must also charge you some... hmm... does 500 GP sound reasonable? Yes, I think I shall charge that.\"";
+ mes "\"Now, let me see. What is it that you want lengthened?\"";
+ next;
+
+ set @default_choice$, "Never mind.";
+ setarray @items, 688, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099,
+ 689, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129;
+ setarray @item_names$, "tank top", "red tank top", "green tank top", "dark blue tank top", "yellow tank top", "light blue tank top", "pink tank top", "black tank top", "orange tank top", "purple tank top", "tank top 9",
+ "short tank top", "red short tank top", "green short tank top", "dark blue short tank top", "yellow short tank top", "light blue short tank top", "pink short tank top", "black short tank top", "orange short tank top", "purple short tank top", "short tank top 9";
+ set @items_nr, 22;
+ callsub SUB_pick_one_of_many_items;
+ if (@item == 0) goto L_main_menu;
+
+ set @delitem, @item;
+ set @genitem, 0;
+ if (@item == 688) set @genitem, 1202;
+ if (@item == 689) set @genitem, 688;
+ if (@item >= 2120 && @item <= 2129) set @genitem, @item - 30;
+ if (@item >= 2090 && @item <= 2099) set @genitem, @item - 40;
+
+ if (@genitem == 0) goto L_lengthen_impossible;
+ if (zeny < 500) goto L_lengthen_nozeny;
+ if (countitem (@COTTON) < 1) goto L_lengthen_nocotton;
+
+ delitem @delitem, 1;
+ delitem @COTTON, 1;
+ getitem @genitem, 1;
+ set zeny, zeny - 500;
+ mes "[Lora Tay the Seamstress]";
+ mes "The seamstress cuts your piece of cotton cloth into stripes and sews them on. Using some odd liquid, she flattens the seams and borders.";
+ if (@delitem > 2000) // dyed
+ mes "She then applies another liquid-- smelling strangely of fermented apples-- to the result, wraps it up, and wrings it tightly. As she unwraps it, you observe to your amazement that the dye has spread to the newly attached area.";
+ mes "\"There you are, dear.\"";
+ next;
+ goto L_main_menu;
+
+L_lengthen_nocotton:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Who do you think I am? The cotton fairy? Get yourself some cloth before you ask me to sew it on.\"";
+ next;
+
+ goto L_main_menu;
+
+L_lengthen_nozeny:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"No gold, no sewing.\"";
+ next;
+
+ goto L_main_menu;
+
+L_lengthen_impossible:
+ mes "[Lora Tay the Seamstress]"; // INTERNAL ERROR
+ mes "\"I really can't lengthen that any more.\"";
+ next;
+
+ goto L_main_menu;
+
+L_shirt:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Oh, how silly. You can by those everywhere. Please don't bore me with such trifles, dear.\"";
+ next;
+
+ goto L_main_menu;
+
+L_tanktop:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"A tank top? Well, hardly a challenge, but I suppose I could do that. Please get me some cloth-- plain cotton will do-- and, let's see, how does 100,000 GP for my efforts sound?\"";
+ mes "\"Wait, I keep forgetting, you are just an adventurer... let's make that 1000 GP, then.\"";
+ next;
+
+L_tanktop_menu:
+ menu "I think I would like something else.", L_main_menu,
+ "A tank top, please (6 cotton)", L_tanktop_long,
+ "A short tank top, please (5 cotton)", L_tanktop_short,
+ "Goodbye for now.", L_end;
+
+L_tanktop_short:
+ if (countitem (@COTTON) < 5) goto L_tanktop_insufficient_cloth;
+ if (zeny < 1000) goto L_tanktop_insufficient_zeny;
+ set zeny, zeny - 1000;
+ delitem @COTTON, 5;
+ getitem 689, 1;
+ mes "[Lora Tay the Seamstress]";
+ mes "You watch as Lora sews the pieces of cloth together, then flattens the seams and ends with some odd liquid.";
+ mes "Amazingly, the result looks like a single piece of cloth.";
+ mes "After little more than a few elegant cuts and folds, your tank top is ready.";
+ mes "\"Oh dear, it seems that I am done already. Do you need anything else?\"";
+ next;
+ goto L_tanktop_menu;
+
+L_tanktop_long:
+ if (countitem (@COTTON) < 6) goto L_tanktop_insufficient_cloth;
+ if (zeny < 1000) goto L_tanktop_insufficient_zeny;
+ set zeny, zeny - 1000;
+ delitem @COTTON, 6;
+ getitem 688, 1;
+ mes "[Lora Tay the Seamstress]";
+ mes "After combining your pieces of cloth into one-- miraculously making the seams and stitches vanish-- the seamstress cuts out all that doesn't belong into a tank top, then folds and stabilises the edges with additional seam lines.";
+ mes "\"There you are. Don't worry, I have trimmed it to match your size perfectly.\"";
+ next;
+ goto L_tanktop_menu;
+
+L_tanktop_insufficient_cloth:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"No, no, no, count again-- how much cloth did I say I needed? That's not enough.\"";
+ next;
+ goto L_tanktop_menu;
+
+L_tanktop_insufficient_zeny:
+ mes "[Lora Tay the Seamstress]";
+ mes "As you note that you don't have enough GP on you, Lora rolls her eyes.";
+ mes "\"I don't work for free, you know. I already gave you a discounted peasant price.\"";
+ next;
+ goto L_main_menu;
+
+L_cape:
+ mes "[Lora Tay the Seamstress]";
+ mes "She shakes her head.";
+ mes "\"No capes. You're an adventurer, right? Do you want to get caught by a closing portcullis? Or strangled when your cape gets tangled in a tree? Or brought down by a mushroom stomping on your cape while you're trying to run away? No capes.\"";
+ next;
+
+ goto L_main_menu;
+
+L_robe:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"A robe? Well, as long as you're not asking me to make it out of cotton...\"";
+ next;
+
+ if (countitem(@SILK_COCOON) == 0)
+ goto L_robe_nosilk;
+
+L_robe_menu:
+ menu "Here, I have some silk cocoons!", -,
+ "Here, I have some silk sheets!", L_robe_nosilk,
+ "Where can I find silk?", L_where_silk,
+ "How much silk do you need?", L_how_much_silk,
+ "Oh, never mind.", L_main_menu;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "The seamstress stares at you as if you had gone out of your mind.";
+ mes "\"And what precisely do you expect me to do with silk cocoons? String them together in some baubly chain? Somehow remove the thread and spin and weave it so that some random person can have their robe?\"";
+ next;
+
+ menu "Will you trade cocoons for sheets?", -,
+ "Never mind.", L_main_menu;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "Lora frowns.";
+ mes "\"It's not all that easy to get properly processed silk around here. Easier for me than for you, I admit...\"";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "She sighs.";
+ mes "\"All right, very well then. I have enough spare silk sheets right now, but you pay the silk processing for your cocoons.\"";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Let's see... " + @ROBE_COCOONS_NR + " silk cocoons and " + @ROBE_ZENY + " GP should just about cover that.\"";
+ next;
+
+ menu "I'm not interested.", L_main_menu,
+ "Very well then, here you are.", -;
+
+ if (countitem(@SILK_COCOON) < @ROBE_COCOONS_NR)
+ goto L_robe_missing_cocoons;
+
+ if (zeny < @ROBE_ZENY)
+ goto L_robe_missing_zeny;
+
+ set zeny, zeny - @ROBE_ZENY;
+ delitem @SILK_COCOON, @ROBE_COCOONS_NR;
+ getitem @SILK_ROBE, 1;
+ mes "[Lora Tay the Seamstress]";
+ mes "The seamstress puts your cocoons and GP away, takes your measurements and pulls out several silk sheets. She asks you to stretch out your arms, then pins the silk sheets in place all over your body.";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "She proceeds to make a number of mysterious marks on the sheets with a charcoal pen. Meanwhile, your arms are getting tired, but you're afraid to lower them-- she used a lot of pins to put everything into place, and you lost track of where they went...";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Splendid.\"";
+ mes "After removing the sheets (and pins!), she picks up a pair of scissors and plows through the cloth at her usual amazing pace, only stopping briefly to sew together parts here and there.";
+ next;
+
+ mes "[Lora Tay the Seamstress]";
+ mes "She then treats the seams with some odorless liquid, making them vanish completely. Finally she hands you the finished robe.";
+ mes "\"Here you are now, this will fit. And don't you dare tell anyone that I did this! I'm not about to start a silk cocoon collection!\"";
+ next;
+
+ goto L_main_menu;
+
+L_robe_missing_cocoons:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"" + @ROBE_COCOONS_NR + " cocoons is what I said, not " + countitem(@SILK_COCOON) + ".";
+ mes @ROBE_COCOONS_NR + " is " + (@ROBE_COCOONS_NR / 10) + " as many times as you have fingers, in case that helps.\"";
+ next;
+ goto L_main_menu;
+
+L_robe_missing_zeny:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"No, no no. The way this works is that you give me the GP first and I give you the robe afterwards. You're " + (@ROBE_ZENY - zeny) + " GP short, so come back when you can afford the robe!\"";
+ next;
+ goto L_main_menu;
+
+L_where_silk:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Oh, Hetchel on the Tulimshar Marketplace can weave them for you.\"";
+ next;
+ mes "[Lora Tay the Seamstress]";
+ mes "She hesitates.";
+ mes "\"I didn't see her there the last time I visited, though. She may be visiting family. Tough luck.\"";
+ next;
+ goto L_robe_menu;
+
+L_how_much_silk:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"Six sheets should do fine, if they're the usual double-elbow squares.\"";
+ next;
+ goto L_robe_menu;
+
+L_robe_nosilk:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"What is that? You don't have any silk? Well, you're out of luck, I would say. I shan't make one out of those cotton rags; you might as well be wearing an apple sack.\"";
+ next;
+ goto L_main_menu;
+
+L_end:
+ close;
+
+
+
+// Input: @items (array of items you want to choose from)
+// @item_names (names of the items in @items)
+// @items_nr (number of entries in @items)
+// @default_choice$ (default option)
+// Return: @item (The selected item, or 0 if the default/something invalid was chosen)
+SUB_pick_one_of_many_items:
+ set @c, 0;
+ set @i, 0;
+
+ setarray @choice_n$, "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "";
+
+L_SUB_pick_choice_loop:
+ if (@i >= @items_nr) goto L_SUB_choice_init_done;
+ set @current, @items[@i];
+ set @current_name$, @item_names$[@i];
+ set @i, @i + 1;
+
+ if (countitem(@current) == 0) goto L_SUB_pick_choice_loop;
+ set @choice_v[@c], @current;
+ set @choice_n$[@c], @current_name$;
+ set @c, @c + 1;
+ goto L_SUB_pick_choice_loop;
+
+L_SUB_choice_init_done:
+ set @choice_v[@c], 0;
+ set @choice_n$[@c], @default_choice$;
+ set @c, @c + 1;
+
+ if (@c < 10)
+ menu @choice_n$[0], -,
+ @choice_n$[1], -,
+ @choice_n$[2], -,
+ @choice_n$[3], -,
+ @choice_n$[4], -,
+ @choice_n$[5], -,
+ @choice_n$[6], -,
+ @choice_n$[7], -,
+ @choice_n$[8], -,
+ @choice_n$[9], -;
+ if (@c < 10) goto L_SUB_choice_join;
+
+ if (@c < 20)
+ menu @choice_n$[0], -,
+ @choice_n$[1], -,
+ @choice_n$[2], -,
+ @choice_n$[3], -,
+ @choice_n$[4], -,
+ @choice_n$[5], -,
+ @choice_n$[6], -,
+ @choice_n$[7], -,
+ @choice_n$[8], -,
+ @choice_n$[9], -,
+ @choice_n$[10], -,
+ @choice_n$[11], -,
+ @choice_n$[12], -,
+ @choice_n$[13], -,
+ @choice_n$[14], -,
+ @choice_n$[15], -,
+ @choice_n$[16], -,
+ @choice_n$[17], -,
+ @choice_n$[18], -,
+ @choice_n$[19], -;
+ if (@c < 20) goto L_SUB_choice_join;
+
+ menu @choice_n$[0], -,
+ @choice_n$[1], -,
+ @choice_n$[2], -,
+ @choice_n$[3], -,
+ @choice_n$[4], -,
+ @choice_n$[5], -,
+ @choice_n$[6], -,
+ @choice_n$[7], -,
+ @choice_n$[8], -,
+ @choice_n$[9], -,
+ @choice_n$[10], -,
+ @choice_n$[11], -,
+ @choice_n$[12], -,
+ @choice_n$[13], -,
+ @choice_n$[14], -,
+ @choice_n$[15], -,
+ @choice_n$[16], -,
+ @choice_n$[17], -,
+ @choice_n$[18], -,
+ @choice_n$[19], -,
+ @choice_n$[20], -,
+ @choice_n$[21], -,
+ @choice_n$[22], -,
+ @choice_n$[23], -,
+ @choice_n$[24], -,
+ @choice_n$[25], -,
+ @choice_n$[26], -,
+ @choice_n$[27], -,
+ @choice_n$[28], -,
+ @choice_n$[29], -,
+ @choice_n$[30], -,
+ @choice_n$[31], -;
+
+L_SUB_choice_join:
+ set @menu, @menu - 1;
+ set @item, @choice_v[@menu];
+ if (@menu >= @c) set @item, 0;
+
+ return;
+}
+
diff --git a/npc/010-2_Dimond's_Cove/workers.txt b/npc/010-2_Dimond's_Cove/workers.txt
new file mode 100644
index 00000000..5579dadd
--- /dev/null
+++ b/npc/010-2_Dimond's_Cove/workers.txt
@@ -0,0 +1,11 @@
+new_23-1.gat,23,70,0 script Josh 155,{
+ mes "[Josh]";
+ mes "\"We're working on getting the cellar pass open.\"";
+ close;
+}
+
+new_23-1.gat,39,75,0 script Zack 155,{
+ mes "[Zack]";
+ mes "\"My brother and I are fixing the cellar pass.\"";
+ close;
+}