summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2024-01-20 11:49:57 -0300
committerJesusaves <cpntb1@ymail.com>2024-01-20 11:49:57 -0300
commit03cbbf5e2ba23f9714baf42df157c0001599fb85 (patch)
tree6ec7d8a8183a5ac8034ffe08170c91d86ad5a97d /npc
parentd786c3b3977ef72b4b64248099274dd79b642258 (diff)
downloadserverdata-03cbbf5e2ba23f9714baf42df157c0001599fb85.tar.gz
serverdata-03cbbf5e2ba23f9714baf42df157c0001599fb85.tar.bz2
serverdata-03cbbf5e2ba23f9714baf42df157c0001599fb85.tar.xz
serverdata-03cbbf5e2ba23f9714baf42df157c0001599fb85.zip
This is the initial version of Cooking System (work in progress).
In particular: - You cannot learn how to cook - You cannot learn any recipe - You cannot make flour - You cannot cook Fruit Salad, Zombie Nachos nor Pancake This also introduces changes to drops, as well as new items, incl. Donuts. Partly Tested.
Diffstat (limited to 'npc')
-rw-r--r--npc/001-1/eventmaster.txt1
-rw-r--r--npc/001-1/rewards.txt1
-rw-r--r--npc/007-1/pylon.txt21
-rw-r--r--npc/009-6/doorbell.txt1
-rw-r--r--npc/009-6/utils.txt1
-rw-r--r--npc/009-7/doorbell.txt1
-rw-r--r--npc/009-7/utils.txt1
-rw-r--r--npc/012-8/doorbell.txt1
-rw-r--r--npc/012-8/utils.txt1
-rw-r--r--npc/017-7/doorbell.txt1
-rw-r--r--npc/017-7/utils.txt1
-rw-r--r--npc/017-8/doorbell.txt1
-rw-r--r--npc/017-8/utils.txt1
-rw-r--r--npc/018-2/_import.txt1
-rw-r--r--npc/018-2/wateranimation.txt22
-rw-r--r--npc/024-14/doorbell.txt1
-rw-r--r--npc/024-14/utils.txt11
-rw-r--r--npc/025-1/ctrl.c2
-rw-r--r--npc/029-8/_import.txt1
-rw-r--r--npc/029-8/wateranimation.txt27
-rw-r--r--npc/craft/cooking.txt132
-rw-r--r--npc/craft/price.txt13
-rw-r--r--npc/craft/recipes.txt13
-rw-r--r--npc/functions/estate2.txt33
-rw-r--r--npc/items/cooking.txt15
-rw-r--r--npc/items/inc_sc_bonus.txt4
-rw-r--r--npc/magic/transmigration.txt7
-rw-r--r--npc/scripts.conf2
28 files changed, 312 insertions, 5 deletions
diff --git a/npc/001-1/eventmaster.txt b/npc/001-1/eventmaster.txt
index ad44024b2..a040470d6 100644
--- a/npc/001-1/eventmaster.txt
+++ b/npc/001-1/eventmaster.txt
@@ -554,6 +554,7 @@ L_EventOnly:
"Silver Mimic", SilverMimic,
"Golden Chest", GoldenChest,
"Golden Mimic", GoldenMimic,
+ "WildX Chest", WildxChest,
"Evil Chest", EvilChest,
"Big Magic Bif", BigMagicBif,
"Maverick", Maverick;
diff --git a/npc/001-1/rewards.txt b/npc/001-1/rewards.txt
index 0d49ca796..859ede1f2 100644
--- a/npc/001-1/rewards.txt
+++ b/npc/001-1/rewards.txt
@@ -108,7 +108,6 @@ OnInit:
sellitem PrecisionPotion,9;
sellitem DodgePotion,9;
sellitem Wurtzite,8;
- sellitem Curshroom,6;
sellitem PetcaringGuide,5; // I needed to add this somewhere
sellitem ScrollSCave,3;
sellitem SmokeGrenade,3;
diff --git a/npc/007-1/pylon.txt b/npc/007-1/pylon.txt
index 71637600a..67c5bd4b7 100644
--- a/npc/007-1/pylon.txt
+++ b/npc/007-1/pylon.txt
@@ -39,6 +39,7 @@ L_Menu:
rif(countitem(Amethyst) >= 1 && Zeny >= 100, l("Yeah sure, take my Amethyst!")),
rif(countitem(IronOre) >= 1 && Zeny >= 100, l("And what about Iron Ore?")),
rif(countitem(SunnyCrystal) >= 1 && Zeny >= 1000 && !checkbound(SunnyCrystal), l("And what about Sunny Crystals?")),
+ rif(!checkbound(TortugaShell) && countitem(TortugaShell) && Zeny >= 1000 && getskilllv(TMW2_COOKING), l("Actually, can you break Tortuga Shells?")),
l("No, thanks, I will keep my gems.");
mes "";
@@ -54,6 +55,9 @@ L_Menu:
goto L_Savior;
break;
case 10:
+ goto L_Shell;
+ break;
+ case 11:
close;
break;
default:
@@ -160,6 +164,23 @@ L_Savior:
}
goto L_Menu;
+L_Shell:
+ mesn;
+ mesq l("For cooking? Sure thing, but this costs %s GP.", fnum(1000));
+ next;
+ mesn;
+ mesc l("Are you sure you want to smash it?"), 1;
+ next;
+ if (askyesno() == ASK_YES) {
+ Zeny-=1000;
+ delitem TortugaShell, 1;
+ getitem TortugaShellFragment, rand2(1,3);
+ mesn;
+ mesq l("Here you go, have fun in whatever dish you'll use this in.");
+ next;
+ }
+ goto L_Menu;
+
L_Close:
close;
diff --git a/npc/009-6/doorbell.txt b/npc/009-6/doorbell.txt
index 2f6796823..5a7444a4d 100644
--- a/npc/009-6/doorbell.txt
+++ b/npc/009-6/doorbell.txt
@@ -265,6 +265,7 @@ OnInit:
create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23);
create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25);
+ create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24);
create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27);
create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32);
diff --git a/npc/009-6/utils.txt b/npc/009-6/utils.txt
index 65ffbb276..0652607fa 100644
--- a/npc/009-6/utils.txt
+++ b/npc/009-6/utils.txt
@@ -67,6 +67,7 @@ OnReload:
// load_npc ( name , map, x , y{, cell} )
load_npc("Wardrobe#RES_0096", .mapa$, 21, 23);
load_npc("Piano#RES_0096" , .mapa$, 34, 25);
+ load_npc("Stove#RES_0096" , .mapa$, 23, 24);
end;
}
diff --git a/npc/009-7/doorbell.txt b/npc/009-7/doorbell.txt
index 0898dc334..1dfd1c1e5 100644
--- a/npc/009-7/doorbell.txt
+++ b/npc/009-7/doorbell.txt
@@ -265,6 +265,7 @@ OnInit:
create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23);
create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25);
+ create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24);
create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27);
create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32);
diff --git a/npc/009-7/utils.txt b/npc/009-7/utils.txt
index 424a1f779..4a30c401d 100644
--- a/npc/009-7/utils.txt
+++ b/npc/009-7/utils.txt
@@ -67,6 +67,7 @@ OnReload:
// load_npc ( name , map, x , y{, cell} )
load_npc("Wardrobe#RES_0097", .mapa$, 21, 23);
load_npc("Piano#RES_0097" , .mapa$, 34, 25);
+ load_npc("Stove#RES_0097" , .mapa$, 23, 24);
end;
}
diff --git a/npc/012-8/doorbell.txt b/npc/012-8/doorbell.txt
index e9f5877d4..2ddb693d7 100644
--- a/npc/012-8/doorbell.txt
+++ b/npc/012-8/doorbell.txt
@@ -271,6 +271,7 @@ OnInit:
create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23);
create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25);
+ create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24);
create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27);
create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32);
diff --git a/npc/012-8/utils.txt b/npc/012-8/utils.txt
index 7e34e91fe..0086fd191 100644
--- a/npc/012-8/utils.txt
+++ b/npc/012-8/utils.txt
@@ -65,6 +65,7 @@ OnReload:
load_npc("Wardrobe#RES_0128", .map$, 21, 23);
load_npc("Cauldron#RES_0128", .map$, 28, 24);
load_npc("Piano#RES_0128" , .map$, 34, 25);
+ load_npc("Stove#RES_0128" , .map$, 23, 24);
end;
}
diff --git a/npc/017-7/doorbell.txt b/npc/017-7/doorbell.txt
index 1be18ad8b..a944dc83e 100644
--- a/npc/017-7/doorbell.txt
+++ b/npc/017-7/doorbell.txt
@@ -271,6 +271,7 @@ OnInit:
create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23);
create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25);
+ create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24);
create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27);
create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32);
diff --git a/npc/017-7/utils.txt b/npc/017-7/utils.txt
index 28f69e283..6541d6a03 100644
--- a/npc/017-7/utils.txt
+++ b/npc/017-7/utils.txt
@@ -68,6 +68,7 @@ OnReload:
load_npc("Wardrobe#RES_0177", .mapa$, 21, 23);
load_npc("Cauldron#RES_0177", .mapa$, 28, 24);
load_npc("Piano#RES_0177" , .mapa$, 34, 25);
+ load_npc("Stove#RES_0177" , .mapa$, 23, 24);
end;
}
diff --git a/npc/017-8/doorbell.txt b/npc/017-8/doorbell.txt
index cc26c4679..4accdd31e 100644
--- a/npc/017-8/doorbell.txt
+++ b/npc/017-8/doorbell.txt
@@ -271,6 +271,7 @@ OnInit:
create_object("Shelf 12" , 1, 2000, 8192, 38, 23, 38, 23);
create_object("Piano" , 3, 10000, 1, 33, 25, 35, 25);
+ create_object("Stove" , 3, 40000, 2, 23, 24, 24, 24);
create_object("Left Desk" , 2, 5000, 1, 20, 25, 22, 27);
create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32);
diff --git a/npc/017-8/utils.txt b/npc/017-8/utils.txt
index 70161131a..11f711334 100644
--- a/npc/017-8/utils.txt
+++ b/npc/017-8/utils.txt
@@ -68,6 +68,7 @@ OnReload:
load_npc("Wardrobe#RES_0178", .mapa$, 21, 23);
load_npc("Cauldron#RES_0178", .mapa$, 28, 24);
load_npc("Piano#RES_0178" , .mapa$, 34, 25);
+ load_npc("Stove#RES_0178" , .mapa$, 23, 24);
end;
}
diff --git a/npc/018-2/_import.txt b/npc/018-2/_import.txt
index adb5e8745..cee0d2783 100644
--- a/npc/018-2/_import.txt
+++ b/npc/018-2/_import.txt
@@ -2,3 +2,4 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/018-2/_mobs.txt",
"npc/018-2/_warps.txt",
+"npc/018-2/wateranimation.txt",
diff --git a/npc/018-2/wateranimation.txt b/npc/018-2/wateranimation.txt
new file mode 100644
index 000000000..73a17835a
--- /dev/null
+++ b/npc/018-2/wateranimation.txt
@@ -0,0 +1,22 @@
+// TMW2 scripts.
+// Author:
+// Jesusalva
+// Description:
+// Water animations, splash, fishes, etc...
+
+018-2,118,50,0 script #HH_WAM0 NPC_WATER_SPLASH,{
+
+ fishing(1,
+ CommonCarp,
+ Trout);
+
+ close;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+}
+
+018-2,41,49,0 duplicate(#HH_WAM0) #HH_WAM1 NPC_WATER_SPLASH
+018-2,51,93,0 duplicate(#HH_WAM0) #HH_WAM2 NPC_WATER_SPLASH
diff --git a/npc/024-14/doorbell.txt b/npc/024-14/doorbell.txt
index ac6452a17..b8b6c8842 100644
--- a/npc/024-14/doorbell.txt
+++ b/npc/024-14/doorbell.txt
@@ -219,6 +219,7 @@ OnInit:
create_object("Beer Shelf" , 1, 2000, 32, 37, 26, 37, 26);
create_object("Piano" , 3, 10000, 1, 31, 26, 33, 26);
+ create_object("Stove" , 3, 42000, 2, 30, 26, 31, 27);
create_object("Right Desk" , 2, 5000, 2, 36, 30, 38, 32);
diff --git a/npc/024-14/utils.txt b/npc/024-14/utils.txt
index ad9c51134..69656594c 100644
--- a/npc/024-14/utils.txt
+++ b/npc/024-14/utils.txt
@@ -45,6 +45,7 @@ OnReload:
load_npc("Wardrobe#RES_PPL", "ples@"+getcharid(0), 25, 26);
load_npc("Cauldron#RES_PPL", "ples@"+getcharid(0), 28, 27);
load_npc("Piano#RES_PPL" , "ples@"+getcharid(0), 32, 26);
+ load_npc("Stove#RES_PPL" , "ples@"+getcharid(0), 30, 27);
end;
}
@@ -78,3 +79,13 @@ OnInit:
end;
}
+
+024-14,30,27,0 script Stove#RES_PPL NPC_STOVE,{
+ realestate_stove();
+ close;
+
+OnInit:
+ .distance=3;
+ end;
+}
+
diff --git a/npc/025-1/ctrl.c b/npc/025-1/ctrl.c
index 160206415..18e685801 100644
--- a/npc/025-1/ctrl.c
+++ b/npc/025-1/ctrl.c
@@ -287,7 +287,7 @@ OnMPReinforce:
// Last a whole minute
summon("Allied Guard", any(FallenGuard1, FallenGuard2, FallenGuard3));
if (strcharinfo(0) == $MOST_HEROIC$)
- summon("Allied Guard", any(FallenGuard1, FallenGuard2, FallenGuard3));
+ summon("Allied Guard", any(FallenGuard1, FallenGuard2, DustGatling));
end;
/////////////////////////////////////////////////////////
diff --git a/npc/029-8/_import.txt b/npc/029-8/_import.txt
index 02bf49b9f..b21131502 100644
--- a/npc/029-8/_import.txt
+++ b/npc/029-8/_import.txt
@@ -1,2 +1,3 @@
// Map 029-8: Asphodel Moors
// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/029-8/wateranimation.txt",
diff --git a/npc/029-8/wateranimation.txt b/npc/029-8/wateranimation.txt
new file mode 100644
index 000000000..702e554d9
--- /dev/null
+++ b/npc/029-8/wateranimation.txt
@@ -0,0 +1,27 @@
+// TMW2 scripts.
+// Author:
+// Jesusalva
+// Description:
+// Water animations, splash, fishes, etc...
+
+029-8,96,82,0 script #Moors_WAM0 NPC_WATER_SPLASH,{
+
+ fishing(2,
+ Trout, Roach,
+ GrassCarp, Tench);
+
+ close;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+}
+
+029-8,115,75,0 duplicate(#Moors_WAM0) #Moors_WAM1 NPC_WATER_SPLASH
+029-8,98,65,0 duplicate(#Moors_WAM0) #Moors_WAM2 NPC_WATER_SPLASH
+029-8,108,58,0 duplicate(#Moors_WAM0) #Moors_WAM3 NPC_WATER_SPLASH
+029-8,112,65,0 duplicate(#Moors_WAM0) #Moors_WAM4 NPC_WATER_SPLASH
+029-8,55,88,0 duplicate(#Moors_WAM0) #Moors_WAM5 NPC_WATER_SPLASH
+029-8,103,79,0 duplicate(#Moors_WAM0) #Moors_WAM6 NPC_WATER_SPLASH
+029-8,52,90,0 duplicate(#Moors_WAM0) #Moors_WAM7 NPC_WATER_SPLASH
diff --git a/npc/craft/cooking.txt b/npc/craft/cooking.txt
new file mode 100644
index 000000000..0ec3ee1f8
--- /dev/null
+++ b/npc/craft/cooking.txt
@@ -0,0 +1,132 @@
+// TMW2 Script
+// Author:
+// Jesusalva, Micksha, Meway
+// Description:
+// Cooking System (Player, Guild, NPC)
+
+// Usage: CookingSystem ({scope})
+// Scopes: CRAFT_NPC, CRAFT_PLAYER
+// If an invalid scope is passed, .knowledge won't be set but will be required
+// Returns true on success, false on failure
+function script CookingSystem {
+ // Set .scope, .knowledge and .success
+ .scope=getarg(0, CRAFT_PLAYER);
+ if (.scope == CRAFT_PLAYER) {
+ if (!getskilllv(TMW2_COOKING)) {
+ mesc l("You don't know how to cook."), 1;
+ return false;
+ }
+ copyarray(.knowledge,RECIPES_COOKING,getarraysize(RECIPES_COOKING));
+ }
+ .success=false;
+
+ setskin "craft3";
+ .@var$ = requestcraft(6); // ?????
+ .@craft = initcraft(.@var$);
+ .@entry = findcraftentry(.@craft, CRAFT_COOKING); // ??????
+ if (debug || $@GM_OVERRIDE) mes "found craft entry: " + .@entry;
+ if (debug || $@GM_OVERRIDE) mes "knowledge value: " + .knowledge[.@entry];
+ if (.@entry < 0) {
+ .success=false;
+ } else {
+ if (.scope == CRAFT_NPC || .knowledge[.@entry]) {
+ .@s=validatecraft(.@craft);
+ // Could not validate (not enough resources)
+ if (!.@s) {
+ mesc l("Not crafting - insufficient materials!"), 1;
+ return false;
+ }
+ usecraft(.@craft);
+ .@it=getcraftcode(.@entry);
+ .@tm=limit(3600, getiteminfo(.@it, ITEMINFO_SELLPRICE) * getskilllv(TMW2_COOKING), 86400);
+ rentitem(.@it, .@tm); // From 1 hour to 1 day
+ // getskilllv(TMW2_COOKING) → and in theory, we can apply options
+ .success=true;
+ } else {
+ .success=false;
+ }
+ }
+ deletecraft .@craft;
+ setskin "";
+ return .success;
+}
+
+/*
+Alchemy can rely in cross-building
+Where a weaker potion is base for a stronger one
+Standard Duration = 2 minutes ~ 5 minutes
+
+Reagents:
+ Water
+ ...Eggs?
+ ...Milk?
+ Nymph Poison
+ Death Potion
+ Manapple
+
+Products:
+ Tea (Chamomile, Spearmint, Oolong, Jasmine, Yerba Mate?)
+ → Argaes Water + «Herbal Reagent»
+OK Coffee (Shadow Herb + Tonori Water)
+OK Piberries Infusion (Piberries + Curshroom)
+OK Atropos Mixture (Lachesis Brew + Clotho Liquor)
+OK Death Potion (Dragonfruit + Nightshade Tea)
+OK Smoke Grenade (Cactus pot + Coal)
+OK Grenade (Cactus pot + Sulfur Powder)
+OK Scented Grenade (Cactus pot + Moss)
+OK Haste Potion (Plushshroom)
+OK Strength Potion (Chagashroom)
+ Return Potion (Hurnscald Recipe => Ocean Croc Claw + Hard Spike? Grass Seeds?)
+OK Status Reset (Curshroom + Mana Piou Feather)
+OK Homun Stat Reset (Curshroom + Manapple)
+OK Move Speed (Gem Powder + Fluor Powder)
+OK Precision (Piberries + Mt. Snake Egg)
+OK Dodge Potion (Piberries + Snake Egg)
+OK Luck, Dex, Int, Vit, Agi (Gems + Tea)
+OK Sacred Life (Golden Apple + Elixir of Life)
+OK Sacred Mana (Golden Apple + Celestia Tea)
+OK Sacred Revival (Sacred Life + Sacred Mana)
+OK Broken Warp Crystal? (Wurtizite + Black Mamba Skin)
+OK Magic Apple? (Divine Apple + Manapple? Death Potion? Sacred Life/Revival?)
+OK Purification Potion (Nymph Poison + Sacred Life)
+OK Iced Bottle (Tonori W. + Argaes W.)
+OK Insurance Contract (» Insurance?) (Quill + Reed Bundle)
+OK Insurance (Quill + Death Potion)
+ Mysterious Fruit? (Legendary)
+
+For all Scrolls: Quill + ? (depends on scroll itself)
+ » Summon Scrolls (Based on mob parts, 1× mob?)
+ → alignment_cansummon() + SummonMagic() or summon() directly
+ → Criteria between weak/strong version is alignment
+ → When aligned, scrolls always summon strongest ver
+ → Level must be equal or superior to strongest, tho
+ » Maggot/Giant Maggot: Bug Leg (Lv 40)
+ » CaveMaggot: Maggot Slime
+ » Green Dragon/Nightmare: Dragon Scales (Lv 105)
+ » Wolvern: Wolvern Pelt
+ » Moggun/Yeti: Frozen Yeti Tear (Lv 60)
+ » Terranite/T.Prot.: Terranite Ore (Lv 90)
+ » Magnus Heal (Lifestone)
+ » Area Provoke? → Scent grenade?
+ » Guild Skills?
+OK » ScrollAngelLightA ( + )
+OK » ScrollBattlePlansA ( + )
+OK » ScrollDefenseBlessA ( + )
+OK » ScrollCriticalFortuneA ( + )
+ → TODO: Kyrie Eleison (Absolute Shield)
+ → With self-stun, makes you a temporary wall?
+ → Maybe a item of Quill + LoF Coin for guild skills? (LoF Quill)
+
+ // Skills for Aegis Shield, all beyond maximum level
+ // Slimes, Snakes, Fairies, Darth Duck, Mr. Prickel
+ // PoisonS.Mushroom
+ // TODO: Lizards, (Black)Scorpions, Moonshroom, Black Mamba, Centaur
+ skill TMW2_HALHISS, 10;
+ skill TMW2_KALSPIKE, 9;
+ skill TMW2_LIMERIZER, 10;
+ skill TMW2_FAIRYKINGDOM, 9;
+ skill TMW2_DUCKY, 10;
+ skill TMW2_FAIRYEMPIRE, 10;
+
+*/
+
diff --git a/npc/craft/price.txt b/npc/craft/price.txt
index ba40f95e8..7cc755029 100644
--- a/npc/craft/price.txt
+++ b/npc/craft/price.txt
@@ -96,6 +96,19 @@ function script fix_cPrice {
// TODO: Scrolls? Reagents?
// And reagents should happen before potions
+ // Fix cooked food prices
+ _fix_cPrice(PepperoniPizza, 9999);
+ _fix_cPrice(CaramelApple, 9999);
+ _fix_cPrice(CarpSandwich, 9999);
+ _fix_cPrice(ShellSandwich, 9999);
+ _fix_cPrice(ChickenSandwich, 9999);
+ _fix_cPrice(Sushi, 9999);
+ _fix_cPrice(SteakAndEggs, 9999);
+ _fix_cPrice(FruitSalad, 9999);
+ _fix_cPrice(PoisonedDish, 9999);
+ _fix_cPrice(ZombieNachos, 9999);
+ _fix_cPrice(Pancake, 9999);
+
// And weapons
_fix_cPrice(WoodenSword);
_fix_cPrice(BugSlayer);
diff --git a/npc/craft/recipes.txt b/npc/craft/recipes.txt
index 423bca93b..3d819e654 100644
--- a/npc/craft/recipes.txt
+++ b/npc/craft/recipes.txt
@@ -107,11 +107,22 @@ function readCooking {
@scope$="COOKING";
mesc l("Eating is a necessity, but cooking is an art.");
+ mesc l("NOTE: Cooked Food will expire some time after its cooked."), 1;
mesc l("(All items must be placed exactly in this order.)");
next;
mesc l("List of known cooking recipes:");
mes "";
- //showRecipe(0, Iten, WarpedLog, 9999);
+ showRecipe(PepperoniPizza,
+ CaramelApple,
+ CarpSandwich,
+ ShellSandwich,
+ ChickenSandwich,
+ Sushi,
+ SteakAndEggs,
+ FruitSalad,
+ PoisonedDish,
+ ZombieNachos,
+ Pancake);
next;
@scope$="";
return;
diff --git a/npc/functions/estate2.txt b/npc/functions/estate2.txt
index 99100f2f8..3899a560d 100644
--- a/npc/functions/estate2.txt
+++ b/npc/functions/estate2.txt
@@ -273,6 +273,23 @@ function script realestate_cauldron {
return;
}
+
+
+// Stove Mobilia
+// realestate_cauldron ( )
+function script realestate_stove {
+ do {
+ mesc l("What will you brew today?");
+ if (CookingSystem(CRAFT_PLAYER))
+ mesc l("Success!"), 3;
+ else
+ mesc l("That didn't work!"), 1;
+ next;
+ mesc l("Try again?");
+ } while (askyesno() == ASK_YES);
+ return;
+}
+
////////////////////////////////////////////////////////////////////////////
// TODO: NPCs toogle on/off controller?
@@ -324,3 +341,19 @@ OnInit:
009-7,34,25,0 duplicate(Piano#RES_0128) Piano#RES_0097 NPC_NO_SPRITE
+////////////////////////////////////////////////////////////////////////////
+012-8,23,24,0 script Stove#RES_0128 NPC_STOVE,{
+ realestate_stove();
+ close;
+
+OnInit:
+ .distance=3;
+ end;
+}
+
+017-7,23,24,0 duplicate(Stove#RES_0128) Stove#RES_0177 NPC_NO_SPRITE
+017-8,23,24,0 duplicate(Stove#RES_0128) Stove#RES_0178 NPC_NO_SPRITE
+009-6,23,24,0 duplicate(Stove#RES_0128) Stove#RES_0096 NPC_NO_SPRITE
+009-7,23,24,0 duplicate(Stove#RES_0128) Stove#RES_0097 NPC_NO_SPRITE
+
+
diff --git a/npc/items/cooking.txt b/npc/items/cooking.txt
new file mode 100644
index 000000000..70de9a8e0
--- /dev/null
+++ b/npc/items/cooking.txt
@@ -0,0 +1,15 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Cooking inner functions
+
+// item_consumption(item_id) - consumes the item after it is removed
+function script item_consumption {
+ sleep2(15); // To avoid crashes, but too quick for user reaction
+ .@it=getarg(0);
+ if (countitem(.@it))
+ delitem .@it, 1;
+ return;
+}
+
diff --git a/npc/items/inc_sc_bonus.txt b/npc/items/inc_sc_bonus.txt
index 8e6b6e5be..b0680b680 100644
--- a/npc/items/inc_sc_bonus.txt
+++ b/npc/items/inc_sc_bonus.txt
@@ -3,11 +3,11 @@
// Jesusalva
// Description:
// Applies effects for INC_* (STR doesn't exist)
-// Valid values: INCAGI INCVIT INCINT INCDEX INCLUK INCHIT INCFLEE SC_FURY
+// Valid values: INCAGI INCVIT INCINT INCDEX INCLUK INCHIT INCFLEE
// Doesn't works: SC_STRUP
// Works if .@min == .@max: INCMHP INCMHPRATE INCMSP INCMSPRATE
/// Untested Values: WALKSPEED (reverse logic) INVINCIBLE (broken)
-// PS. SC_FURY causes crit rate to increase
+// PS. SC_CRITICALPERCENT (Crit) SC_FOOD_CRITICALSUCCESSVALUE (Crit) SC_STRIKING (Crit , ATK)
//
// Variables:
// .@delay Second of buffing
diff --git a/npc/magic/transmigration.txt b/npc/magic/transmigration.txt
index 838fa718c..77c3e8114 100644
--- a/npc/magic/transmigration.txt
+++ b/npc/magic/transmigration.txt
@@ -80,6 +80,7 @@ OnCall:
l("Black Mamba Tongue -> Mountain Snake Tongue"), MountainSnakeTongue,
l("Mountain Snake Tongue -> Snake Tongue"), SnakeTongue,
l("Snake Tongue -> Cave Snake Tongue"), CaveSnakeTongue,
+ l("5x Snake Tongues -> Tortuga Tongue"), TortugaTongue,
l("Cancel"), 0;
break;
case RedScorpionStinger:
@@ -216,6 +217,12 @@ OnCall:
end;
}
break;
+ case TortugaTongue:
+ if (!transcheck(SnakeTongue, 5)) {
+ dispbottom l("Not enough items!");
+ end;
+ }
+ break;
// Scorpion Stinger Chain
case RedScorpionStinger:
if (!transcheck(BlackScorpionStinger, 1)) {
diff --git a/npc/scripts.conf b/npc/scripts.conf
index 5f8bc1cab..204d22a09 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -81,6 +81,7 @@
"npc/items/alcohol.txt",
"npc/items/arcmage.txt",
"npc/items/books.txt",
+"npc/items/cooking.txt",
"npc/items/croconut.txt",
"npc/items/emptybox.txt",
"npc/items/grenade.txt",
@@ -95,6 +96,7 @@
// Crafting System
"npc/craft/options.txt",
"npc/craft/alchemy.txt",
+"npc/craft/cooking.txt",
"npc/craft/smith.txt",
"npc/craft/tweak.txt",
"npc/craft/recipes.txt",