// TMW-2 scripts.
// Original Authors: Hal9000 & Qwerty Dragon
// TMW-2 Authors:
// Ayruss
// Jesusalva
// Description:
// La Johanne Chef.
// The cook may need help with something.
// Variable:
// ShipQuests_ChefGado
// ShipQuests_Knife
002-1,27,28,0 script Chef Gado NPC_CHEF_GADO,{
.@q = getq(ShipQuests_Knife);
.@p = getq(ShipQuests_ChefGado);
// Player should have the rusty knife already
if (!.@q) goto L_Knife;
// Piou quest
if (.@q == 1 && .@p == 0) goto L_PiouLegs;
if (.@p == 1) goto L_Continue;
if (.@p == 2) goto L_Complete;
// An error happened!
close;
L_Knife:
mesn;
mesq l("I hate the sea, the salty air always lets my knives rust. I already have a stockpile of rusty knives, don't even know what to do with them.");
if (TUTORIAL) mesc l("That indeed is true, you can see a pile of rusty knives on the nearby table.");
if (TUTORIAL) dnext;
tutmes l("Unlike talking, when trying to pick objects or read signs, you should be at an arms distance of them."), l("NOTE"), false;
tutmes l("This is often 1, 2 or 3 tiles. For talking, usually 4 or 5 tiles. Shouting can be done from 12 up to 18 tiles; But as shouting is rude, most NPCs won't react to it."), l("TUTORIAL"), false;
close;
L_PiouLegs:
mesn;
mesq l("I'm trying to make good food for all the sailors here, could you help me?");
mes "";
menu
l("Yes."), L_Start,
l("Is there a reward?"), L_Ask,
l("No."), -;
close;
L_Ask:
mes "";
mesn;
mesq l("I have a spare pair of gloves laying somewhere, you can have those if you finish the task.");
mes "";
menu
l("Sounds good."), L_Start,
l("No thanks."), -;
close;
L_Start:
mes "";
mesn;
mesq l("Great, I need 11 @@. Only good food makes a good crew.",getitemlink("PiouLegs"));
setq ShipQuests_ChefGado, 1;
mes "";
menu
l("I'll get to work."), -;
close;
L_Continue:
setq ShipQuests_ChefGado, 1;
mesn;
mesq l("Do you have the @@/11 @@ I requested? The sailors are starving because of you!",countitem("PiouLegs"),getitemlink("PiouLegs"));
mes "";
menu
rif(countitem("PiouLegs") >= 11, l("Yes, take them.")), L_Reward,
l("Not yet."), -;
close;
L_Reward:
inventoryplace CreasedGloves, 1;
delitem PiouLegs, 11;
getitem CreasedGloves, 1;
setq ShipQuests_ChefGado, 2;
Zeny = Zeny + 100;
getexp 25, 5;
mes "";
mesn;
mesq l("Thanks. Take this spare pair of gloves and some change.");
next;
mesq l("I'm sure the crew will like to be spared from having to eat @@ again!", getitemlink(Piberries));
close;
end;
L_Complete:
.@total = getq2(ShipQuests_ChefGado);
if (getskilllv(TMW2_COOKING) > .@total) goto L_Cooking;
switch (rand2(3)) {
case 0: npctalk3 l("What are you doing in my kitchen?! Get out, it's not a place for kids!"); break;
case 1: npctalk3 l("Where is the salt?! This is sugar! Proper sailors need salt, not sugar!"); break;
case 2: npctalk3 l("Are you going to stand here all day long? Go wash the dishes or go away."); break;
}
closedialog;
close;
L_Cooking:
.@total = getq2(ShipQuests_ChefGado);
mesn;
mesq l("Wait. Stop there. You have the same smell as Ashley. Did you just receive some cooking lesson from her?");
next;
mesn;
mesq l("I wish to gouge on you but I own her a great deal, so I'll teach you a recipe for free. I work mostly with sea food... This includes %s by the way.", getitemlink(PoisonedDish));
next;
// Prepare a list of recipes you still haven't learned
if (!RECIPES_COOKING[CraftCarpSandwich])
array_push(.@recipes, CraftCarpSandwich);
if (!RECIPES_COOKING[CraftShellSandwich])
array_push(.@recipes, CraftShellSandwich);
if (!RECIPES_COOKING[CraftSushi])
array_push(.@recipes, CraftSushi);
if (!RECIPES_COOKING[CraftPoisonedDish])
array_push(.@recipes, CraftPoisonedDish);
// Check if there *are* recipes to be learned
if (!getarraysize(.@recipes)) {
mesn;
mesq l("But you'll have to wait I figure out a new recipe. This may take years so shoo, shoo! Get out of my sight!");
close;
}
// Decide on a random recipe that you'll now learn
array_shuffle(.@recipes);
.@new = array_pop(.@recipes);
// FIXME: Actually broken but who cares
.@const$ = data_to_string(.@new);
.@item = string_to_data(substr(.@const$, 5, getstrlen(.@const$) - 1));
// Actually teach you the recipe
setq2 ShipQuests_ChefGado, .@total + 1;
RECIPES_COOKING[.@new] = true;
// Some text so you know what you learned
mesn;
mesq l("So, today I'll teach you the %s recipe.", getitemlink(.@item));
next;
mesc l("Some time later...");
mes "";
mesn;
mesq l("Good. I also noted it down in your Recipe Book. The path of culinary is an arduous one but the fruits it yields are sweet!");
close;
OnInit:
.sex = G_MALE;
.distance = 4;
end;
}