From 734570e2381e17ac1d0e93a0c27a582e661697e6 Mon Sep 17 00:00:00 2001
From: Kirsty <kirsty.degreesoflewdity@gmail.com>
Date: Sat, 21 Dec 2024 00:57:41 -0500
Subject: [PATCH 1/4] wearProp and image fixes.

---
 game/04-Variables/canvasmodel-main.js           |   6 ++----
 game/base-clothing/canvasmodel-img.js           |   4 +---
 game/base-system/pregnancy/children-events.twee |   8 ++++----
 game/overworld-forest/loc-asylum/main.twee      |   5 +++--
 game/overworld-forest/loc-lake/underwater.twee  |   2 +-
 game/overworld-town/loc-cafe/main.twee          |   8 ++++----
 game/overworld-town/loc-island/main.twee        |   6 +++---
 game/overworld-town/loc-park/main.twee          |   2 +-
 game/overworld-town/loc-police/community.twee   |   2 +-
 game/overworld-town/loc-prison/main.twee        |   2 +-
 game/overworld-town/loc-temple/main.twee        |   2 +-
 .../overworld-town/special-kylar/abduction.twee |   2 +-
 .../clothing/genitals/chastitybelt/waist.png    | Bin 301 -> 297 bytes
 .../bird/tail/back-default-default.png          | Bin 0 -> 602 bytes
 14 files changed, 23 insertions(+), 26 deletions(-)
 create mode 100644 img/sex/missionary/body/transformations/bird/tail/back-default-default.png

diff --git a/game/04-Variables/canvasmodel-main.js b/game/04-Variables/canvasmodel-main.js
index f088260eee..acdb2b1a31 100644
--- a/game/04-Variables/canvasmodel-main.js
+++ b/game/04-Variables/canvasmodel-main.js
@@ -796,8 +796,8 @@ Renderer.CanvasModels.main = {
 			options.shirt_fitted_right_move_src = check ? "img/clothes/masks/formfitting_right_move.png" : null;
 			options.shirt_fitted_left_move_src = check ? "img/clothes/masks/formfitting_left_move.png" : null;
 		} else if (soft) {
-			const upperCheck = !options.worn.upper.setup.outfitPrimary && !options.high_waist_suspenders && !options.belly_mask_clip_src;
-			const underUpperCheck = !options.worn.under_upper.setup.outfitPrimary && !options.belly_mask_clip_src;
+			const upperCheck = !options.worn.upper.setup.outfitPrimary && !options.worn.lower.setup.type.includes("covered") && !options.high_waist_suspenders && !options.belly_mask_clip_src;
+			const underUpperCheck = !options.worn.under_upper.setup.outfitPrimary && !options.worn.under_lower.setup.type.includes("covered") && !options.belly_mask_clip_src;
 			options.shirt_mask_clip_src = "img/clothes/masks/soft_clip.png";
 			options.shirt_fitted_right_move_src = "img/clothes/masks/soft_right_move.png";
 			options.shirt_fitted_left_move_src = "img/clothes/masks/soft_left_move.png";
@@ -805,8 +805,6 @@ Renderer.CanvasModels.main = {
 			options.lowerShadowMask.push(upperCheck ? "img/clothes/masks/soft_shadow.png" : null);
 			options.underLowerShadowMask.push(underUpperCheck ? "img/clothes/masks/soft_shadow.png" : null);
 			options.underLowerMask.push(underUpperCheck? "img/clothes/masks/soft_lower_clip.png" : null);
-			console.error(options.lowerShadowMask);
-			console.error(options.underLowerShadowMask);
 		}
 
 		if (options.lower_tucked && !options.worn.lower.setup.notuck && !options.worn.feet.setup.notuck) {
diff --git a/game/base-clothing/canvasmodel-img.js b/game/base-clothing/canvasmodel-img.js
index e0166198fc..cf47ec8d0c 100644
--- a/game/base-clothing/canvasmodel-img.js
+++ b/game/base-clothing/canvasmodel-img.js
@@ -118,9 +118,7 @@ DefineMacro("modelprepare-player-body", function () {
 		*/
 
 	T.coverBreastsWithArm = false;
-	const leftArm = setup.clothes_all_slots.some(slot => ["left_cover", "clutch", "cover_both"].includes(V.worn[slot]?.holdPositionPosition))
-		? "cover"
-		: "idle";
+	const leftArm = setup.clothes_all_slots.some(slot => ["left_cover", "clutch", "cover_both"].includes(V.worn[slot]?.holdPosition)) ? "cover" : "idle";
 	const rightArm = setup.clothes_all_slots.some(slot => ["right_cover", "cover_both"].includes(V.worn[slot]?.holdPosition))
 		? "cover"
 		: (V.worn.handheld.name !== "naked" && !["left_cover", "idle"].includes(V.worn.handheld?.holdPosition)) ||
diff --git a/game/base-system/pregnancy/children-events.twee b/game/base-system/pregnancy/children-events.twee
index a86559bf79..eb3965cd6f 100644
--- a/game/base-system/pregnancy/children-events.twee
+++ b/game/base-system/pregnancy/children-events.twee
@@ -679,7 +679,7 @@ You leave behind $donatedMilk bottles of milk for your children with one of Bail
 		You sit beside <<childname>>, and pull <<childhim>> and the inverted book into your lap. You flip it open and begin to read the simple words to <<childhim>>. <<childHe>> follows along both your voice and the colourful pictures for a while, until <<childhe>> becomes distracted and rolls off your lap.<<lstress>><<stress -6>>
 		<<set $children[$childActivityEvent.childid].localVariables.activity to "readingCorrected">>
 	<<case "babyRattle">>
-		<<wearProp "toyrattle">>
+		<<wearProp "rattle">>
 		You sit beside <<childname>>. <<childHe>>'s looking down at a <<childtoy $location $childActivityEvent.toyid "lowercase">>. You take it in hand, and give it a shake, causing a cacophany of rattles. The <<childtype>> looks bewildered and intrigued, and reaches for this strange object. You give the <<childtoy $location $childActivityEvent.toyid "lowercase">> one last shake before handing it over for the <<childtype>> to experiment with.
 		<<if _childTotalDays lte 40>>
 			<<childHe>> simply drops it to the floor.
@@ -695,8 +695,8 @@ You leave behind $donatedMilk bottles of milk for your children with one of Bail
 			<<set $children[$childActivityEvent.childid].localVariables.activity to "teddyBear2">>
 			<<set $children[$childActivityEvent.childid].localVariables.toy to clone(_toyName)>>
 			<<switch _toyName>>
-				<<case "red robot">><<wearProp "toy robot" "red">>
-				<<case "green robot">><<wearProp "toy robot" "green">>
+				<<case "red robot">><<wearProp "robot" "red">>
+				<<case "green robot">><<wearProp "robot" "green">>
 				<<case "baby doll">><<wearProp "baby doll">>
 				<<case "clown">><<wearProp "clown toy">>
 				<<case "Mr Teddy">><<wearProp "bear" 0 "mr teddy">>
@@ -705,7 +705,7 @@ You leave behind $donatedMilk bottles of milk for your children with one of Bail
 			<</switch>>
 		<</if>>
 	<<case "toyCar">>
-		<<wearProp "toycar">>
+		<<wearProp "car">>
 		You sit beside <<childname>>, and take the <<childtoy $location $childActivityEvent.toyid "lowercase">> from <<childhis>> flailing hands. You place it on the floor, and roll it back and forth. "Vroom! Vroom!" you say, rolling it back and forth as <<childname>> watches, enraptured. You hand <<childhim>> the toy.
 		<br><br>
 		<<if _childTotalDays lte 120 + random(0,20)>>
diff --git a/game/overworld-forest/loc-asylum/main.twee b/game/overworld-forest/loc-asylum/main.twee
index 14135c0138..264ddbe845 100644
--- a/game/overworld-forest/loc-asylum/main.twee
+++ b/game/overworld-forest/loc-asylum/main.twee
@@ -1369,8 +1369,9 @@ It seems that for this plan to work, you'll have to find and disable it.
 :: Asylum Study
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
 <<if $leftarm isnot "bound" and $rightarm isnot "bound">>
-	<<set _prop to either("bookenglish", "bookhistory", "bookscience", "bookmaths")>>
-	<<wearProp _prop>>
+	<<set _prop to either("english", "history", "science", "maths")>>
+		<<set _colour to _prop is "science" ? "blue" : _prop is "history" ? "yellow" : _prop is "maths" ? "red" : "green">>
+	<<wearProp "open textbook" _colour _prop>>
 <</if>>
 You read old text books in the dusty library. Most of this should still apply.
 <<if $leftarm is "bound" and $rightarm is "bound">>
diff --git a/game/overworld-forest/loc-lake/underwater.twee b/game/overworld-forest/loc-lake/underwater.twee
index 6f6dbe4b33..f64ea2aa4d 100644
--- a/game/overworld-forest/loc-lake/underwater.twee
+++ b/game/overworld-forest/loc-lake/underwater.twee
@@ -628,7 +628,7 @@ Deciding you've had enough, you attempt to unravel yourself and leave the room.
 	<</addinlineevent>>
 	<<if $lakeruinkey is undefined>>
 		<<addinlineevent "bronze key" 10>>
-			<<wearProp "key" "bronze">>
+			<<wearProp "key" 0 "bronze">>
 			You reach inside one of the pots. You find a decaying bronze key.
 			<br><br>
 			<<set $lakeruinkey to 1>>
diff --git a/game/overworld-town/loc-cafe/main.twee b/game/overworld-town/loc-cafe/main.twee
index 70aeb925ef..bd9bbbccb9 100644
--- a/game/overworld-town/loc-cafe/main.twee
+++ b/game/overworld-town/loc-cafe/main.twee
@@ -2193,13 +2193,13 @@ You ignore the <<person>> and finish licking the plate clean. You lean back, sat
 <<set $outside to 0>><<set $location to "cafe">><<effects>>
 <<switch $phase>>
 	<<case "fruity ale">>
-		<<wearProp "beermug">><<set _food to "a fruity ale. It arrives quickly, served in a regular beer glass. It's very sweet and light. It's delicious">>
+		<<wearProp "beer mug">><<set _food to "a fruity ale. It arrives quickly, served in a regular beer glass. It's very sweet and light. It's delicious">>
 	<<case "winter ale">>
-		<<wearProp "beermug">><<set _food to "winter ale.	It arrives promptly, served in a beautifully curved glass. It's sweet, rather than bitter. It's delicious">>
+		<<wearProp "beer mug">><<set _food to "winter ale.	It arrives promptly, served in a beautifully curved glass. It's sweet, rather than bitter. It's delicious">>
 	<<case "shandy">>
-		<<wearProp "beermug">><<set _food to "a shandy. It arrives quickly. It's served in a can with a beer glass; you're clearly meant to pour it yourself. It's lemon flavoured and very refreshing">>
+		<<wearProp "beer mug">><<set _food to "a shandy. It arrives quickly. It's served in a can with a beer glass; you're clearly meant to pour it yourself. It's lemon flavoured and very refreshing">>
 	<<case "autumn ale">>
-		<<wearProp "beermug">><<set _food to "an autumn ale. It arrives quickly. It's sweet and has a hint of caramel. It's delicious">>
+		<<wearProp "beer mug">><<set _food to "an autumn ale. It arrives quickly. It's sweet and has a hint of caramel. It's delicious">>
 	<<case "fruit salad">>
 		<<wearProp "salad fork">><<set _food to "a fruit salad. It arrives promptly, full of fresh strawberries, blueberries, kiwi, and chunks of pineapple. It's sweet and delicious">>
 	<<case "gingerbread">>
diff --git a/game/overworld-town/loc-island/main.twee b/game/overworld-town/loc-island/main.twee
index 63dcecd980..c8f519fbe2 100644
--- a/game/overworld-town/loc-island/main.twee
+++ b/game/overworld-town/loc-island/main.twee
@@ -1796,7 +1796,7 @@ You kneel before the sleeping figure. There's no response. The <<person1>><<pers
 
 
 :: Islander Spear
-<<effects>><<wearProp "spear">>
+<<effects>><<wearProp "tarnished spear">>
 
 <<set $spear_vessel to "held">>
 <<earnFeat "Gilded Spear">>
@@ -1865,7 +1865,7 @@ You emerge above a lagoon, surrounded by high rocks on most sides. On the water,
 
 
 :: Islander End 3
-<<set $location to "pirate_ship">><<effects>><<wearProp "spear">>
+<<set $location to "pirate_ship">><<effects>><<wearProp "tarnished spear">>
 
 The ship carries you over serene waters.
 <<if Time.dayState is "night">>
@@ -2117,7 +2117,7 @@ The <<person>> leads you through <<his>> tunnels, past the <<person2>><<person>>
 
 
 :: Islander Return Held
-<<effects>><<wearProp "spear">>
+<<effects>><<wearProp "tarnished spear">>
 
 The <<person>> leads you through <<his>> tunnels, past the <<person2>><<person>>, and toward the sea.<<person1>> "I'm glad the spear is safe," the <<person>> says. "<span class="gold">Take it to the temple.</span> They'll know what to do."
 <br><br>
diff --git a/game/overworld-town/loc-park/main.twee b/game/overworld-town/loc-park/main.twee
index 427157d730..13d421939e 100644
--- a/game/overworld-town/loc-park/main.twee
+++ b/game/overworld-town/loc-park/main.twee
@@ -734,7 +734,7 @@ You run back to the toilets without incident. You take deep breaths as you try t
 	You run up to the hot chocolate stand. Robin's customers notice you first. A <<person2>><<person>> drops <<his>> cup when they see your nudity. Robin notices you next, and <<person1>><<his>> face turns beet red.
 	<br><br>
 	<<if $robinromance is 1>>
-		<<wearProp "hot cocoa">>
+		<<wearProp "cocoa">>
 		Robin openly ogles your exposed body as you run up to their stand. You take a lap around the hot chocolate stand as Robin's customers stare and take footage of your naked run.
 		<br><br>
 		You stop in front of the stand.
diff --git a/game/overworld-town/loc-police/community.twee b/game/overworld-town/loc-police/community.twee
index 0d6217b6cb..2bd370b9b0 100644
--- a/game/overworld-town/loc-police/community.twee
+++ b/game/overworld-town/loc-police/community.twee
@@ -1348,7 +1348,7 @@ The <<person>> leads you into the alley. A few of the other criminals glance ove
 	<<person1>>
 	<<clearNPC "community_police">>
 	<<clearNPC "community_criminal">>
-	You emerge to see the <<person1>><<person>> shoving the <<person2>><<person>> into the back of the van, <<his>> protests unheeded. You help yourself to <<his>> unattended bag of rubbish.<<wearProp "trash">>
+	You emerge to see the <<person1>><<person>> shoving the <<person2>><<person>> into the back of the van, <<his>> protests unheeded. You help yourself to <<his>> unattended bag of rubbish.<<wearProp "trash bag">>
 	<br><br>
 	<<person1>>
 
diff --git a/game/overworld-town/loc-prison/main.twee b/game/overworld-town/loc-prison/main.twee
index 3360ea6867..1f2c251376 100644
--- a/game/overworld-town/loc-prison/main.twee
+++ b/game/overworld-town/loc-prison/main.twee
@@ -1989,7 +1989,7 @@ You hold out your hand. "Y-yes," <<he>> says. "I gave my word." <<He>> pulls a h
 <<else>>
 	<<prison_spire_options>>
 <</if>>
-<<wearProp "iron key">>
+<<wearProp "key" 0 "iron">>
 
 :: Passout Prison
 <<effects>>
diff --git a/game/overworld-town/loc-temple/main.twee b/game/overworld-town/loc-temple/main.twee
index 1811c43514..23bd63f26d 100644
--- a/game/overworld-town/loc-temple/main.twee
+++ b/game/overworld-town/loc-temple/main.twee
@@ -876,7 +876,7 @@ You look away from the <<monk>>, and <<he>> continues down the aisle.
 	<br><br>
 <</if>>
 <<if $spear_vessel is "held">>
-	<<wearProp "spear">>
+	<<wearProp "tarnished spear">>
 	<<if $temple_spear_mission is 1>>
 		<<His>> breath quickens as <<he>> beholds the spear. Then <<he>> averts <<his>> eyes and whispers a prayer. "Oh child," <<he>> says. "You've done more for the world than you know."
 	<<else>>
diff --git a/game/overworld-town/special-kylar/abduction.twee b/game/overworld-town/special-kylar/abduction.twee
index 02a3013a9f..4ce8d2c702 100644
--- a/game/overworld-town/special-kylar/abduction.twee
+++ b/game/overworld-town/special-kylar/abduction.twee
@@ -1521,7 +1521,7 @@ You enter the room. The rodents scurry into the corners, disappearing into hidde
 Now closer, you can see a keyhole in the cabinet door. You try to pull it open, but it's locked.
 <br><br>
 <<if $kylar_abduction_key is 1>>
-	<<wearProp "key" "steel">>
+	<<wearProp "key" 0 "steel">>
 	<<if $kylar_abduction_torch is 1>>
 		You reach for the key you found hanging on the wall. It fits. The lock clicks open, revealing a back wall covered in pictures of newly-married couples. The heads of you and Kylar have been crudely taped on top, replacing the original identities.<<gstress>><<stress 6>>
 		<br><br>
diff --git a/img/sex/doggy/clothing/genitals/chastitybelt/waist.png b/img/sex/doggy/clothing/genitals/chastitybelt/waist.png
index 9cbd5058d721393bb66307643e60f6e501abeae2..e6c851d59a98a46e0014b5cf334b2b84d0276854 100644
GIT binary patch
delta 179
zcmV;k08Ia_0;vL!St7ehL_t(|obB1s2?H?@LqV_If6s@%uK-~*(}12~69QQalK}x1
zW&i*HfVWKbynvZ#KzLrj>Yf)cbBgB$<nJ#!FW_YFFFY?GeShtrzkGlL=nm+f7m(gh
zKfgY}Pr&j3UjXF+4xl@rdtN|#KmGjrfbMw#{st-!n3=tE3E_DG*V$L=ynrjbpMJiR
h0Ra}15CH}j{ytxz0X;>bQ5FCI002ovPDHLkV1hc$OT7R9

delta 186
zcmZ3<w3cZ?q|$y*7srr_Id5-X<UDL3;Nm#<O8t4a`+5nvWy>0Co4h$vbSE|nPn^Iq
zS%8rxHFec<)-x{5hdwifec#hCGuTF7p}ziNC8K(E{liMem%p?B|9Q$R<52DZl>Jio
z>*rU-I;LstKbSQ53mEP)-u=vU>G#X$*V#+XbAK=os624y&0KGe^V~bm?TdQO8gujS
mkI#qS|967e2eeY0L7(5Qm(l**=Hf35K;Y@>=d#Wzp$PzI5mrI~

diff --git a/img/sex/missionary/body/transformations/bird/tail/back-default-default.png b/img/sex/missionary/body/transformations/bird/tail/back-default-default.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe98292c686dd7cbf1e1aafa94893adb806c2034
GIT binary patch
literal 602
zcmeAS@N?(olHy`uVBq!ia0y~yU;;838aSANq*te+C6Hn)4sv&5Sa(k5C6FT*;1l8s
zq!Y}|n??B6Da+hZQv0iKa>v#4Z$ird-u{2bPw?|9{{X7sDhcunX7~>Sb)6z%K(nrR
zx;TbZ%z1l*v8dUAhsEJQA<zH+1*wz$>@PgDx_p=4!%oF{Q!Y?Dk>J33skJJnpJ)B=
zWvklMT-ay$?VhvlnNQV4f6i^T^6)#b=Kl8p_FUQjx3bxeefCcb+kg7|8ICoN*Rys!
zllMu;UMqCt`|9l%=f7XL>innVv-b~gt(S`6o-nJypDA3cF)Q&5d%?BK`Hh-ue%^ll
zqxhebv_ZV%@2g4qjb^XUKVB|$<Ca|(&+~utJ2_|E-u_JgtJDhC84s5~is$SR^GTR}
ze1Ft>|BKUp2t>@6x3yrr>bUywbG3xMjLn=mxwZ|f?>pMW)qeRrt5sP1LOJt8P7d`A
zvbodZr#mRLYQ?DUzxE|nZ9)I3{c|_QFP>Us)@aK3cV8RRRr{mL-_PH5*#G#vuY*<N
z+luAi>O=GAA6}mKaPhvnrr+Pig(~)5Z+BSsYu5f7tXp2Cf7hSy;Oo%qkjD`B{zdwY
zkGs}4L@<A3S=B7nc&Gl;=8A$p&zbt><tWTMkn_+(%s<Xy{*TGLM}$3As|)OD*!TE6
zpMzQB7Ue3&wLcF37WaFwfAx?5pZ_r;#g6|^rt<;Zb8NrQ@dAl@y85}Sb4q9e045Uy
Ap8x;=

literal 0
HcmV?d00001

-- 
GitLab


From f77245ed5873a9feea843558d74f7d1093de9c73 Mon Sep 17 00:00:00 2001
From: Kirsty <kirsty.degreesoflewdity@gmail.com>
Date: Sat, 21 Dec 2024 01:09:17 -0500
Subject: [PATCH 2/4] Fixed floating chainsaw.

---
 game/base-clothing/clothing-handheld.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/game/base-clothing/clothing-handheld.js b/game/base-clothing/clothing-handheld.js
index d800f372b4..08f33757cd 100644
--- a/game/base-clothing/clothing-handheld.js
+++ b/game/base-clothing/clothing-handheld.js
@@ -4724,6 +4724,7 @@ function initHandheld() {
 			name: "chainsaw",
 			name_cap: "Chainsaw",
 			variable: "chainsaw",
+			holdPosition: "right_cover",
 			state: 0,
 			state_base: 0,
 			warmth: 0,
-- 
GitLab


From da954f6b792a91898bef5bb9c1634309356da969 Mon Sep 17 00:00:00 2001
From: Kirsty <kirsty.degreesoflewdity@gmail.com>
Date: Sat, 21 Dec 2024 02:16:34 -0500
Subject: [PATCH 3/4] Kitchen UI.

---
 game/04-Variables/colours.js                  |   9 ++
 game/base-clothing/clothing-handheld.js       |   1 +
 game/base-system/kitchen.twee                 | 151 +++++++++---------
 .../{right_strange.png => right.png}          | Bin
 modules/css/kitchen.css                       |   5 +-
 5 files changed, 89 insertions(+), 77 deletions(-)
 rename img/clothes/props/tending/strange flower/{right_strange.png => right.png} (100%)

diff --git a/game/04-Variables/colours.js b/game/04-Variables/colours.js
index 826ac78997..643944a073 100644
--- a/game/04-Variables/colours.js
+++ b/game/04-Variables/colours.js
@@ -1411,6 +1411,15 @@ setup.colours.eyeshadow = [
 			blend: "#38B20A",
 		},
 	},
+	{
+		variable: "light green",
+		name: "light green",
+		name_cap: "Light green",
+		csstext: "green",
+		canvasfilter: {
+			blend: "#7caf7c",
+		},
+	},
 	{
 		variable: "lime",
 		name: "lime",
diff --git a/game/base-clothing/clothing-handheld.js b/game/base-clothing/clothing-handheld.js
index 08f33757cd..91190963e2 100644
--- a/game/base-clothing/clothing-handheld.js
+++ b/game/base-clothing/clothing-handheld.js
@@ -476,6 +476,7 @@ function initHandheld() {
 			name: "feather duster",
 			name_cap: "Feather duster",
 			variable: "featherduster",
+			holdPosition: "over_head",
 			state: 0,
 			state_base: 0,
 			integrity: 120,
diff --git a/game/base-system/kitchen.twee b/game/base-system/kitchen.twee
index 806da9d763..27bbe54961 100644
--- a/game/base-system/kitchen.twee
+++ b/game/base-system/kitchen.twee
@@ -2,83 +2,86 @@
 
 <<widget "kitchen_display">>
 <<set _recipe_known to false>>
-<details class="kitchenInventory">
+<details class="kitchenInventory journal">
 	<summary class="journal"><<print _args[0].toLocaleUpperFirst()>></summary>
     <<set _food_keys to Object.keys(setup.plants)>>
-    <<for _i to 0; _i lt _food_keys.length; _i++>>
-        <<set _food to _food_keys[_i]>>
+	<div class="m-2">
+		<<for _i to 0; _i lt _food_keys.length; _i++>>
+			<<set _food to _food_keys[_i]>>
 
-        <<if _args[0] is "sweets" and setup.plants[_food].special.includes("sweet") or
-        _args[0] is "drinks" and setup.plants[_food].special.includes("drink") or
-        _args[0] is "ingredients" and setup.plants[_food].type.includes("ingredient") or
-        _args[0] is "savouries" and !setup.plants[_food].special.includes("sweet") and !setup.plants[_food].special.includes("drink") and setup.plants[_food].type isnot "ingredient">>
-            <<set _recipe_go to true>>
-        <<else>>
-            <<set _recipe_go to false>>
-        <</if>>
-        <<if $plants[_food].recipe is true and _recipe_go is true>>
-        <div class="kitchen-recipe-box">
-            <div class="recipe-text"><<tendingicon setup.plants[_food].icon>><<print _food.toLocaleUpperFirst().replace(/_/g," ")>></div>
-            Number owned: <<print $plants[_food].amount>>
-            <br>
-            Time needed to make: <<print setup.plants[_food].days>> minutes
-            <br>
-            Quantity made: <<print setup.plants[_food].multiplier>> 
-            <<if setup.plants[_food].multiplier gte 2>>
-                <<print setup.plants[_food].plural>>
-            <</if>>
-            <br>
-            Ingredients (number available):
-            <<unset _ingredients_available>>
-            <<for _e to 0; _e lt setup.plants[_food].ingredients.length; _e++>>
-                <<set _ingredient to setup.plants[_food].ingredients[_e]>>
-                <<print _ingredient.toLocaleUpperFirst().replace(/_/g," ")>>
-                <<if _food_keys.includes(_ingredient)>>
-                    <<tendingicon setup.plants[_ingredient].icon>>
-                <<else>>
-                    <span class="red">Ingredient missing, perhaps misspelled?</span>
-                <</if>>
-                <<if Object.keys($plants).includes(_ingredient)>>
-                    <<if _ingredients_supplied.includes(_ingredient)>>
-                        (∞)
-                    <<else>>
-                        (<<print $plants[_ingredient].amount>>)
-                    <</if>>
-                    <<if $bus is "orphanage_kitchen">>
-                        <<if _ingredients_supplied.includes(_ingredient) or _ingredients_exceptions.includes(_ingredient) and $plants[_ingredient].amount gte 1>>
-                            
-                        <<else>>
-                            <<set _ingredients_available to false>>
-                        <</if>>
-                    <<else>>
-                        <<if $plants[_ingredient].amount gte 1 or _ingredients_supplied.includes(_ingredient)>>
+			<<if _args[0] is "sweets" and setup.plants[_food].special.includes("sweet") or
+			_args[0] is "drinks" and setup.plants[_food].special.includes("drink") or
+			_args[0] is "ingredients" and setup.plants[_food].type.includes("ingredient") or
+			_args[0] is "savouries" and !setup.plants[_food].special.includes("sweet") and !setup.plants[_food].special.includes("drink") and setup.plants[_food].type isnot "ingredient">>
+				<<set _recipe_go to true>>
+			<<else>>
+				<<set _recipe_go to false>>
+			<</if>>
+			<<if $plants[_food].recipe is true and _recipe_go is true>>
+				<div class="kitchen-recipe-box">
+					<div class="recipe-text"><<tendingicon setup.plants[_food].icon>><<print _food.toLocaleUpperFirst().replace(/_/g," ")>></div>
+					Owned: <span class="gold"><<print $plants[_food].amount>></span>
+					<br>
+					Time: <span class="gold"><<print setup.plants[_food].days>></span> minutes
+					<br>
+					Result: <span class="gold"><<print setup.plants[_food].multiplier>></span>
+					<<if setup.plants[_food].multiplier gte 2>>
+						<<print setup.plants[_food].plural>>
+					<</if>>
+					<br>
+					Ingredients (available):
+					<<unset _ingredients_available>>
+					<<for _e to 0; _e lt setup.plants[_food].ingredients.length; _e++>>
+						<<set _ingredient to setup.plants[_food].ingredients[_e]>>
+						<<print _ingredient.toLocaleUpperFirst().replace(/_/g," ")>>
+						<<if _food_keys.includes(_ingredient)>>
+							<<tendingicon setup.plants[_ingredient].icon>>
+						<<else>>
+							<span class="red">Ingredient missing, perhaps misspelled?</span>
+						<</if>>
+						<<if Object.keys($plants).includes(_ingredient)>>
+							<<if _ingredients_supplied.includes(_ingredient)>>
+								<span class="gold">(∞)</span>
+							<<else>>
+								<span class="gold">(<<print $plants[_ingredient].amount>>)</span>
+							<</if>>
+							<<if $bus is "orphanage_kitchen">>
+								<<if _ingredients_supplied.includes(_ingredient) or _ingredients_exceptions.includes(_ingredient) and $plants[_ingredient].amount gte 1>>
 
-                        <<else>>
-                            <<set _ingredients_available to false>>
-                        <</if>>
-                    <</if>>
-                <<else>>
-                    <span class="red">Problem detected.</span>
-                <</if>>
-                |
-            <</for>>
-            <<if _ingredients_available isnot false>>
-                <<capture _food>>
-                    <br>
-                    <<if $tiredness gte C.tiredness.max>>
-                        <span class="purple">You're too tired to cook!</span>
-                    <<else>>
-                        <<link [[Make|$passage]]>><<make_recipe _food>><</link>>
-                    <</if>>
-                <</capture>>
-            <</if>>
-            <<set _recipe_known to true>>
-        </div>
-        <</if>>
-    <</for>>
-    <<if _recipe_known is false>>
-        <span class="blue">You know no recipes!</span> <span class="gold">You can learn them from the housekeeping class at school.</span>
-    <</if>>
+								<<else>>
+									<<set _ingredients_available to false>>
+								<</if>>
+							<<else>>
+								<<if $plants[_ingredient].amount gte 1 or _ingredients_supplied.includes(_ingredient)>>
+
+								<<else>>
+									<<set _ingredients_available to false>>
+								<</if>>
+							<</if>>
+						<<else>>
+							<span class="red">Problem detected.</span>
+						<</if>>
+						<<= _e lt setup.plants[_food].ingredients.length - 1 ? "|" : "">>
+					<</for>>
+					<<if _ingredients_available isnot false>>
+						<<capture _food>>
+							<br>
+							<<if $tiredness gte C.tiredness.max>>
+								<span class="purple">You're too tired to cook!</span>
+							<<else>>
+								<<link [[Make|$passage]]>><<make_recipe _food>><</link>>
+							<</if>>
+						<</capture>>
+					<</if>>
+					<<set _recipe_known to true>>
+				</div>
+				<hr>
+			<</if>>
+		<</for>>
+		<<if _recipe_known is false>>
+			<span class="blue">You know no recipes!</span> <span class="gold">You can learn them from the housekeeping class at school.</span>
+		<</if>>
+	</div>
 </details>
 <</widget>>
 
@@ -259,4 +262,4 @@
     <<if $daily.gift_recipients is undefined>>
         <<set $daily.gift_recipients to []>>
     <</if>>
-<</widget>>
\ No newline at end of file
+<</widget>>
diff --git a/img/clothes/props/tending/strange flower/right_strange.png b/img/clothes/props/tending/strange flower/right.png
similarity index 100%
rename from img/clothes/props/tending/strange flower/right_strange.png
rename to img/clothes/props/tending/strange flower/right.png
diff --git a/modules/css/kitchen.css b/modules/css/kitchen.css
index 03e475e1d5..4098c6aca8 100644
--- a/modules/css/kitchen.css
+++ b/modules/css/kitchen.css
@@ -1,9 +1,8 @@
 .kitchen-recipe-box {
 	flex-wrap: wrap;
 	position: relative;
-	border-style: ridge;
 }
 
 .recipe-text {
-	font-size: 1.5em;
-}
\ No newline at end of file
+	font-size: 1.25em;
+}
-- 
GitLab


From 998efeba20282e8987f000f6aad438669c53e907 Mon Sep 17 00:00:00 2001
From: Kirsty <kirsty.degreesoflewdity@gmail.com>
Date: Sat, 21 Dec 2024 02:24:56 -0500
Subject: [PATCH 4/4] Fixed string used in place of temp variable.

---
 game/overworld-plains/loc-moor/main.twee | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/game/overworld-plains/loc-moor/main.twee b/game/overworld-plains/loc-moor/main.twee
index 56a832f4ec..80079f3b0d 100644
--- a/game/overworld-plains/loc-moor/main.twee
+++ b/game/overworld-plains/loc-moor/main.twee
@@ -271,7 +271,7 @@ You are in the courtyard of a ruined castle. Even derelict and half-sunk, the ru
 			<<if _amount lt 1 or _valuable is "wallet">><<continue>><</if>>
 			<<set _shiny to true>>
 			<<capture _valuable>>
-				<<birdicon _valuable>><<link [["Use " + _valuable + " as bait (0:02)"|Castle]]>><<handheldon 1>><<wearProp "valuable">><<pass 2>><<set $bird.materials.valuables[_valuable]-->><<set $bird.lurkerSnareState to "ready">><</link>>
+				<<birdicon _valuable>><<link [["Use " + _valuable + " as bait (0:02)"|Castle]]>><<handheldon 1>><<wearProp _valuable>><<pass 2>><<set $bird.materials.valuables[_valuable]-->><<set $bird.lurkerSnareState to "ready">><</link>>
 				<br>
 			<</capture>>
 		<</for>>
-- 
GitLab