diff --git a/game/01-config/start.twee b/game/01-config/start.twee
index 2e000e2646dac56568a696b5d8fc7be3a909813d..b6c847dac803cb7995bd554ed995745b64d2e4bb 100644
--- a/game/01-config/start.twee
+++ b/game/01-config/start.twee
@@ -46,6 +46,11 @@ The new school year starts tomorrow at <<if $timestyle is "ampm">>9:00 am<<else>
 
 <br><br>
 
+<<link [[Winter Start|Orphanage Intro]]>><<set $days to 92>><<set $yeardays to 92>><<set $monthday to 1>><<set $month to "december">><<set $season to "winter">><<set $weather to "snow">><</link>> (Begins the game at the start of winter. For testing.)
+<br>
+<<link [[Christmas Start|Orphanage Intro]]>><<set $days to 115>><<set $yeardays to 115>><<set $monthday to 23>><<set $month to "december">><<set $season to "winter">><<set $weather to "snow">><<set $money += 50000>><</link>> (Begins the game two days before Christmas. For testing.)
+<br>
+<br>
 <<if $debug is 1>>
 	These options start with cheats enabled and £5000
 	<br>
diff --git a/game/01-config/sugarcubeConfig.js b/game/01-config/sugarcubeConfig.js
index 202c86485d5d0f364313b78fc6cab61c0279b511..3a69bf45c104463f42c39d551d3b1a75d12411ca 100644
--- a/game/01-config/sugarcubeConfig.js
+++ b/game/01-config/sugarcubeConfig.js
@@ -1,6 +1,6 @@
 Config.history.controls = false;
 
-Config.history.maxStates = 5;
+Config.history.maxStates = 1;
 
 State.prng.init()
 
@@ -17,10 +17,10 @@ Config.saves.onSave = function (save) {
 /*LinkNumberify and images will enable or disable the feature completely*/
 /*debug will enable or disable the feature only for new games*/
 window.StartConfig = {
-	"debug": true,
+	"debug": false,
 	"enableImages": true,
 	"enableLinkNumberify": true,
-	"version": "0.2.19.2",
+	"version": "0.2.20.0",
 }
 
 config.saves.autosave = "autosave";
diff --git a/game/02-CSS/base.css b/game/02-CSS/base.css
index 6c9ed6ded93624a36d26c0c4ffc461302f92def3..afe30df91bf542d03cf57759ca43d2aefe488db5 100644
--- a/game/02-CSS/base.css
+++ b/game/02-CSS/base.css
@@ -860,28 +860,28 @@ body.has-images #story-caption .storyCaptionDivExtended {
 
 #spray2 {
 	position: fixed;
-	left: 16px;
+	left: 13px;
 	top: 192px;
 	z-index: 10;
 }
 
 #spray3 {
 	position: fixed;
-	left: 32px;
+	left: 27px;
 	top: 192px;
 	z-index: 10;
 }
 
 #spray4 {
 	position: fixed;
-	left: 48px;
+	left: 42px;
 	top: 192px;
 	z-index: 10;
 }
 
 #spray5 {
 	position: fixed;
-	left: 64px;
+	left: 56px;
 	top: 192px;
 	z-index: 10;
 }
diff --git a/game/04-Variables/variables-start.twee b/game/04-Variables/variables-start.twee
index 2e1c966c74dfc1232a7ab1e08aced09f7c07db38..220ef8976d0ca08610ba554e5a5a91d6c3e31ae1 100644
--- a/game/04-Variables/variables-start.twee
+++ b/game/04-Variables/variables-start.twee
@@ -31,7 +31,7 @@
 <<set $clothing_update to 1>>
 <<set $parasite_update to 1>>
 <<set $npcNamedVersion to 2>>
-<<set $clothing_number to 10>>
+<<set $clothing_number to 11>>
 
 <<set $player = {gender: 0, sex: 0, appearance: 0, penis: 0, vagina: 0, penissize: 0, breastsize: 0, buttsize: 0, ballssize: 0, pronoun: 0, pronouns: {he: 0, his: 0}, gender_body: 0, virginity:{anal:true,oral:true,penile:true,vaginal:true,temple:false}}>>
 <<npcList>>
@@ -154,6 +154,7 @@
 <<set $cattle_milked to 0>>
 <<set $masseur_stat to 0>>
 <<set $machine_stat to 0>>
+<<set $season to "autumn">>
 
 <<set $orgasmtrait to 0>>
 <<set $ejactrait to 0>>
@@ -428,8 +429,6 @@
 <<set $thirstenabled to 0>>
 <<set $hygieneenabled to 0>>
 
-<<set $weather to either("clear", "clear", "clear", "clear", "overcast", "overcast", "overcast", "overcast", "rain", "rain")>>
-
 <<set $exhibitionism to 0>>
 <<set $promiscuity to 0>>
 <<set $diagnosis to 0>>
diff --git a/game/04-Variables/variables-start2.twee b/game/04-Variables/variables-start2.twee
index 51939ca93d00d0102e0e7196b2b97add381bb887..83ef682f400c79c38eb34be1d1be986592a56715 100644
--- a/game/04-Variables/variables-start2.twee
+++ b/game/04-Variables/variables-start2.twee
@@ -181,6 +181,10 @@
 	}>>
 <</if>>
 
+<<weather_select>>
+<<set $warmth to 0>>
+<<temperature_hour>>
+
 <<setupTransformationPiecesObject>>
 
 <</nobr>><</widget>>
diff --git a/game/04-Variables/variables-versionUpdate.twee b/game/04-Variables/variables-versionUpdate.twee
index dda97a864f3b0ed6046ef0d58b01f7f7e9b56cb4..8da578b5ea79574b744311e8976fd2c9f57e6750 100644
--- a/game/04-Variables/variables-versionUpdate.twee
+++ b/game/04-Variables/variables-versionUpdate.twee
@@ -1267,9 +1267,9 @@
 	<<set $wear_hands to "none">>
 <</if>>
 
-<<if $objectVersion.updateClothes lt 10 or $objectVersion.updateClothes is undefined>>
+<<if $objectVersion.updateClothes lt 11 or $objectVersion.updateClothes is undefined>>
 	<<updateClothes>>
-	<<set $objectVersion.updateClothes to 10>>
+	<<set $objectVersion.updateClothes to 11>>
 <</if>>
 
 <<if $mathsprojectwon is 1>>
@@ -1460,8 +1460,8 @@
 	<<set $combatControls to "radio">>
 <</if>>
 
-<<if $clothing_number is 8>>
-	<<set $clothing_number to 10>>
+<<if $clothing_number isnot 11>>
+	<<set $clothing_number to 11>>
 <</if>>
 
 <<if $loveInterest is undefined>>
@@ -1843,4 +1843,28 @@
 <</if>>
 */
 
+
+<<if $clothing_number isnot 12>>
+	<<set $clothing_number to 12>>
+<</if>>
+
+<<if $warmth is undefined>>
+	<<set $warmth to 0>>
+	<<set $chill_day to 0>>
+	<<switch $season>>
+	<<case "spring">>
+		<<set $chill_day += 70>>
+	<<case "summer">>
+		
+	<<case "autumn">>
+		<<set $chill_day += 80>>
+	<<case "winter">>
+		<<set $chill_day += 150>>
+	<</switch>>
+	<<if $weather is "snow">>
+		<<set $chill_day += 50>>
+	<</if>>
+	<<set $chill to $chill_day>>
+<</if>>
+
 <</nobr>><</widget>>
diff --git a/game/base-clothing/clothing-face.twee b/game/base-clothing/clothing-face.twee
index ddf570c32233311a7a15e17d73f77831db57a13c..b6eeb81935ac39741f2c7d71c4559e5260932830 100644
--- a/game/base-clothing/clothing-face.twee
+++ b/game/base-clothing/clothing-face.twee
@@ -17,6 +17,7 @@
 	colour_options: [],
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -44,6 +45,7 @@
 	colour_options: [],
 	type: ["glasses"],
 	gender: "n",
+	warmth: 2,
 	cost: 5000,
 	description: "Makes studying easier, but you might be picked on at school.",
 	shop: ["clothing"],
@@ -70,6 +72,7 @@
 	colour_options: [],
 	type: ["cool"],
 	gender: "n",
+	warmth: 0,
 	cost: 7000,
 	description: "Makes status rise faster at school.",
 	shop: ["clothing"],
@@ -96,6 +99,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["mask"],
 	gender: "n",
+	warmth: 15,
 	cost: 2000,
 	description: "Hides your identity.",
 	shop: ["clothing"],
@@ -122,6 +126,7 @@
 	colour_options: [],
 	type: ["fetish", "gag"],
 	gender: "n",
+	warmth: 5,
 	cost: 2000,
 	description: "Keeps your mouth shut.",
 	shop: [],
@@ -148,6 +153,7 @@
 	colour_options: [],
 	type: ["fetish", "blindfold"],
 	gender: "n",
+	warmth: 15,
 	cost: 2000,
 	description: "Keeps you in the dark.",
 	shop: [],
@@ -174,6 +180,7 @@
 	colour_options: [],
 	type: ["fetish", "gag", "blindfold"],
 	gender: "n",
+	warmth: 15,
 	cost: 3000,
 	description: "Keeps your mouth shut and eyes covered.",
 	shop: [],
@@ -200,6 +207,7 @@
 	colour_options: [],
 	type: ["mask", "stealthy"],
 	gender: "n",
+	warmth: 20,
 	cost: 23000,
 	description: "For those up to no good.",
 	shop: ["clothing"],
@@ -226,6 +234,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["glasses"],
 	gender: "n",
+	warmth: 2,
 	cost: 5000,
 	description: "Makes studying easier, but you might be picked on at school.",
 	shop: ["clothing"],
@@ -252,6 +261,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["glasses"],
 	gender: "n",
+	warmth: 2,
 	cost: 5000,
 	description: "Makes studying easier, but you might be picked on at school.",
 	shop: ["clothing"],
@@ -278,6 +288,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["glasses"],
 	gender: "n",
+	warmth: 2,
 	cost: 5000,
 	description: "Makes studying easier, but you might be picked on at school.",
 	shop: ["clothing"],
@@ -304,6 +315,7 @@
 	colour_options: [],
 	type: ["cool"],
 	gender: "n",
+	warmth: 0,
 	cost: 7000,
 	description: "Makes status rise faster at school.",
 	shop: ["clothing"],
@@ -330,6 +342,7 @@
 	colour_options: [],
 	type: ["cool"],
 	gender: "n",
+	warmth: 0,
 	cost: 7000,
 	description: "Makes status rise faster at school.",
 	shop: ["clothing"],
@@ -356,6 +369,7 @@
 	colour_options: [],
 	type: ["cool"],
 	gender: "n",
+	warmth: 0,
 	cost: 7000,
 	description: "Makes status rise faster at school.",
 	shop: ["clothing"],
@@ -382,6 +396,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["cool"],
 	gender: "n",
+	warmth: 0,
 	cost: 7000,
 	description: "Makes status rise faster at school.",
 	shop: ["clothing"],
@@ -408,6 +423,7 @@
 	colour_options: [],
 	type: ["cool"],
 	gender: "n",
+	warmth: 0,
 	cost: 7000,
 	description: "Makes status rise faster at school.",
 	shop: ["clothing"],
@@ -434,6 +450,7 @@
 	colour_options: [],
 	type: ["cool"],
 	gender: "n",
+	warmth: 0,
 	cost: 3500,
 	description: "Makes status rise faster at school.",
 	shop: ["clothing"],
@@ -460,6 +477,7 @@
 	colour_options: [],
 	type: ["gag"],
 	gender: "n",
+	warmth: 10,
 	cost: 0,
 	description: "Keeps your dangerous mouth shut.",
 	shop: [],
@@ -486,6 +504,7 @@
 	colour_options: [],
 	type: ["costume"],
 	gender: "n",
+	warmth: 15,
 	cost: 500,
 	description: "Feels like its made from toilet paper.",
 	shop: ["forest"],
@@ -496,6 +515,33 @@
 	location: 0,
 	iconFile: "",
 	accIcon: 0
+},
+
+	{index: 19,
+	name: "swimming goggles",
+	name_cap: "Swimming goggles",
+	variable: "swimgoggles",
+	integrity: 70,
+	integrity_max: 70,
+	fabric_strength: 25,
+	reveal: 1,
+	word: "a",
+	plural: 0,
+	colour: 0,
+	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	type: ["swim", "diving"],
+	gender: "n",
+	warmth: 10,
+	cost: 1500,
+	description: "For keeping your vision clear down below.",
+	shop: ["clothing"],
+	accessory: 0,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	cursed: 0,
+	location: 0,
+	iconFile: "",
+	accIcon: 0
 }
 
 ]>>
diff --git a/game/base-clothing/clothing-feet.twee b/game/base-clothing/clothing-feet.twee
index e552d678fab7cdf09a11a1209fcf85445f906051..22ca9238b624410d68eaf7e741a272664af0aecf 100644
--- a/game/base-clothing/clothing-feet.twee
+++ b/game/base-clothing/clothing-feet.twee
@@ -17,6 +17,7 @@
 	colour_options: [],
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -44,6 +45,7 @@
 	colour_options: [],
 	type: ["school"],
 	gender: "n",
+	warmth: 50,
 	cost: 2500,
 	description: "Smart and suitable for school.",
 	shop: ["clothing"],
@@ -71,6 +73,7 @@
 	type: ["formal"],
 	gender: "m",
 	femininity: -100,
+	warmth: 60,
 	cost: 10000,
 	description: "Smart and sophisticated.",
 	shop: ["clothing"],
@@ -97,6 +100,7 @@
 	colour_options: [],
 	type: ["fetish"],
 	gender: "n",
+	warmth: 10,
 	cost: 10000,
 	description: "Requires a special tool to unlock.",
 	shop: [],
@@ -123,6 +127,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["normal"],
 	gender: "n",
+	warmth: 15,
 	cost: 2000,
 	description: "Cool in summer.",
 	shop: ["clothing"],
@@ -150,6 +155,7 @@
 	type: ["formal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 10000,
 	description: "Fashionable and sophisticated.",
 	shop: ["clothing"],
@@ -176,6 +182,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["normal"],
 	gender: "n",
+	warmth: 30,
 	cost: 3000,
 	description: "Casual and practical.",
 	shop: ["clothing"],
@@ -203,6 +210,7 @@
 	type: ["costume"],
 	gender: "f",
 	femininity: 200,
+	warmth: 60,
 	cost: 4000,
 	description: "Waterproof.",
 	shop: ["forest"],
@@ -229,6 +237,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["normal"],
 	gender: "n",
+	warmth: 80,
 	cost: 5000,
 	description: "Waterproof.",
 	shop: ["clothing"],
@@ -256,6 +265,7 @@
 	type: ["formal", "serving", "bimbo", "heels"],
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 5000,
 	description: "Makes you feel rather girly.",
 	shop: [],
@@ -283,6 +293,7 @@
 	type: ["formal", "heels"],
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 10000,
 	description: "It's called a kitten heel because it's only three centimetres.",
 	shop: ["clothing"],
@@ -310,6 +321,7 @@
 	type: ["normal", "heels"],
 	gender: "f",
 	femininity: 200,
+	warmth: 15,
 	cost: 3500,
 	description: "Great for the beach.",
 	shop: ["clothing"],
@@ -337,6 +349,7 @@
 	type: ["formal", "serving", "heels"],
 	gender: "f",
 	femininity: 200,
+	warmth: 25,
 	cost: 12500,
 	description: "Quite tall and very grown-up.",
 	shop: ["clothing"],
@@ -364,6 +377,7 @@
 	type: ["fetish", "serving", "heels"],
 	gender: "f",
 	femininity: 200,
+	warmth: 65,
 	cost: 16000,
 	description: "A powerful choice.",
 	shop: ["clothing"],
@@ -391,6 +405,7 @@
 	type: ["dance", "fetish", "heels"],
 	gender: "f",
 	femininity: 200,
+	warmth: 15,
 	cost: 25000,
 	description: "Crazy tall and very slutty.",
 	shop: ["clothing"],
@@ -418,6 +433,7 @@
 	type: ["normal"],
 	gender: "m",
 	femininity: -100,
+	warmth: 50,
 	cost: 20000,
 	description: "A pair of black horsebit loafers.",
 	shop: ["clothing"],
@@ -445,6 +461,7 @@
 	type: ["normal"],
 	gender: "m",
 	femininity: -100,
+	warmth: 40,
 	cost: 40000,
 	description: "A pair of shell cordovan loafers. Pricey, but very high quality.",
 	shop: ["clothing"],
@@ -472,6 +489,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 70,
 	cost: 2000,
 	description: "Keeps your toes warm.",
 	shop: ["clothing"],
@@ -499,6 +517,7 @@
 	type: ["normal"],
 	gender: "m",
 	femininity: -100,
+	warmth: 65,
 	cost: 20000,
 	description: "Made from robust, high-quality materials.",
 	shop: ["clothing"],
@@ -526,6 +545,7 @@
 	type: ["normal", "riding"],
 	gender: "n",
 	femininity: 0,
+	warmth: 65,
 	cost: 14500,
 	description: "Flexible. For professional riding.",
 	shop: ["clothing"],
@@ -553,6 +573,7 @@
 	type: ["normal", "riding"],
 	gender: "n",
 	femininity: 0,
+	warmth: 65,
 	cost: 8000,
 	description: "For casual riding.",
 	shop: ["clothing"],
@@ -580,6 +601,7 @@
 	type: ["normal"],
 	gender: "n",
 	femininity: 0,
+	warmth: 65,
 	cost: 6000,
 	description: "Protects your toes.",
 	shop: ["clothing"],
@@ -590,6 +612,34 @@
 	location: 0,
 	iconFile: "Work boots.png",
 	accIcon: 0
+},
+
+	{index: 22,
+	name: "flippers",
+	name_cap: "Flippers",
+	variable: "flippers",
+	integrity: 200,
+	integrity_max: 200,
+	fabric_strength: 60,
+	reveal: 1,
+	word: "n",
+	plural: 1,
+	colour: 0,
+	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	type: ["swim", "diving"],
+	gender: "n",
+	femininity: 0,
+	warmth: 30,
+	cost: 2000,
+	description: "Lets you dive faster.",
+	shop: ["clothing"],
+	accessory: 0,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	cursed: 0,
+	location: 0,
+	iconFile: "",
+	accIcon: 0
 }
 
 ]>>
diff --git a/game/base-clothing/clothing-hands.twee b/game/base-clothing/clothing-hands.twee
index 6e4fce0b10830a43aacdc8581f4e757b1b3d036b..b6e1acbe8b7a440ebd94760f8c11974b0f2f7c96 100644
--- a/game/base-clothing/clothing-hands.twee
+++ b/game/base-clothing/clothing-hands.twee
@@ -16,6 +16,7 @@
 	colour_options: [],
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -43,6 +44,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["normal"],
 	gender: "n",
+	warmth: 25,
 	cost: 1000,
 	description: "Fingerless gloves to keep your hands warm.",
 	shop: ["clothing"],
@@ -57,7 +59,7 @@
 	mainImage:0,
 	leftImage:1,
 	rightImage:1
-},
+}
 
 ]>>
 <</nobr>><</widget>>
\ No newline at end of file
diff --git a/game/base-clothing/clothing-head.twee b/game/base-clothing/clothing-head.twee
index 1d0bb710e67ad44514f1f9f8eb890bc6720d8d87..f8ca3c1f88f40f70776e4a6a49d80f35d77c6dbc 100644
--- a/game/base-clothing/clothing-head.twee
+++ b/game/base-clothing/clothing-head.twee
@@ -17,6 +17,7 @@
 	colour_options: [],
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -46,6 +47,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 0,
 	cost: 500,
 	description: "Greatly accelerates hair growth.",
 	shop: ["clothing"],
@@ -73,6 +75,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["cool"],
 	gender: "n",
+	warmth: 70,
 	cost: 3000,
 	description: "Makes status rise faster at school.",
 	shop: ["clothing"],
@@ -100,6 +103,7 @@
 	colour_options: [],
 	type: ["costume", "serving"],
 	gender: "n",
+	warmth: 10,
 	cost: 3000,
 	description: "Cute ears on a headband. Part of a bunny outfit.",
 	shop: ["clothing"],
@@ -128,6 +132,7 @@
 	type: ["holy", "costume"],
 	gender: "f",
 	femininity: 200,
+	warmth: 60,
 	cost: 2500,
 	description: "Protects your hair from unwanted attentions.",
 	shop: ["clothing"],
@@ -156,6 +161,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 0,
 	cost: 900,
 	description: "Cute.",
 	shop: ["clothing"],
@@ -183,6 +189,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["normal"],
 	gender: "n",
+	warmth: 25,
 	cost: 2000,
 	description: "Shields you from the sun.",
 	shop: ["clothing"],
@@ -210,6 +217,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["costume"],
 	gender: "n",
+	warmth: 50,
 	cost: 3000,
 	description: "Patchy and fragrant.",
 	shop: ["forest"],
@@ -236,6 +244,7 @@
 	colour_options: [],
 	type: ["costume"],
 	gender: "n",
+	warmth: 80,
 	cost: 5000,
 	description: "'Tis the season.",
 	shop: ["forest"],
@@ -262,6 +271,7 @@
 	colour_options: [],
 	type: ["costume", "serving"],
 	gender: "n",
+	warmth: 25,
 	cost: 5000,
 	description: "Keeps cream out of your hair.",
 	shop: ["forest"],
@@ -288,6 +298,7 @@
 	colour_options: [],
 	type: ["costume"],
 	gender: "n",
+	warmth: 40,
 	cost: 8000,
 	description: "Protects you from the sun.",
 	shop: ["clothing"],
@@ -316,6 +327,7 @@
 	type: ["normal"],
 	gender: "m",
 	femininity: -100,
+	warmth: 40,
 	cost: 5000,
 	description: "Suave.",
 	shop: ["forest"],
@@ -343,6 +355,7 @@
 	type: ["cool"],
 	gender: "m",
 	femininity: -100,
+	warmth: 45,
 	cost: 8000,
 	description: "Conforming isn't your style.",
 	shop: ["clothing"],
@@ -369,6 +382,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["rainproof"],
 	gender: "n",
+	warmth: 60,
 	cost: 4000,
 	description: "Keeps the rain off.",
 	shop: ["clothing"],
@@ -395,6 +409,7 @@
 	colour_options: [],
 	type: ["normal"],
 	gender: "f",
+	warmth: 0,
 	cost: 0,
 	description: "Floral.",
 	shop: [],
@@ -420,6 +435,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["normal"],
 	gender: "n",
+	warmth: 30,
 	cost: 2000,
 	description: "Protects your neck from the sun.",
 	shop: ["clothing"],
@@ -448,6 +464,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 10,
 	cost: 1100,
 	description: "Holds your hair back.",
 	shop: ["clothing"],
@@ -476,6 +493,7 @@
 	type: ["normal"],
 	gender: "n",
 	femininity: 0,
+	warmth: 15,
 	cost: 700,
 	description: "Keeps the sun off.",
 	shop: ["clothing"],
@@ -504,6 +522,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 100,
+	warmth: 0,
 	cost: 1500,
 	description: "Keeps the sun off.",
 	shop: [],
@@ -532,6 +551,7 @@
 	type: ["maid", "costume", "serving"],
 	gender: "f",
 	femininity: 200,
+	warmth: 10,
 	cost: 1200,
 	description: "For looking cute while cleaning.",
 	shop: ["clothing"],
@@ -560,6 +580,7 @@
 	type: ["formal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 25,
 	cost: 5000,
 	description: "Exotic.",
 	shop: ["clothing"],
@@ -588,6 +609,7 @@
 	type: ["cool"],
 	gender: "m",
 	femininity: 0,
+	warmth: 10,
 	cost: 1100,
 	description: "Keeps hair from your eyes.",
 	shop: ["clothing"],
@@ -616,6 +638,7 @@
 	type: ["costume"],
 	gender: "m",
 	femininity: -200,
+	warmth: 35,
 	cost: 2200,
 	description: "For when you have something to be proud of.",
 	shop: ["clothing"],
@@ -644,6 +667,7 @@
 	type: ["costume"],
 	gender: "m",
 	femininity: -200,
+	warmth: 50,
 	cost: 3000,
 	description: "Shields you from the sun.",
 	shop: ["clothing"],
@@ -672,6 +696,7 @@
 	type: ["costume"],
 	gender: "m",
 	femininity: -200,
+	warmth: 40,
 	cost: 2000,
 	description: "Shields you from the sun.",
 	shop: ["clothing"],
@@ -700,6 +725,7 @@
 	type: ["costume", "athletic"],
 	gender: "m",
 	femininity: -200,
+	warmth: 65,
 	cost: 2000,
 	description: "Protective headwear. Used in a foreign sport.",
 	shop: ["clothing"],
@@ -728,6 +754,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 300,
+	warmth: 0,
 	cost: 1400,
 	description: "Very cute.",
 	shop: ["clothing"],
@@ -756,6 +783,7 @@
 	type: ["costume", "athletic", "riding"],
 	gender: "n",
 	femininity: 0,
+	warmth: 55,
 	cost: 16000,
 	description: "Protective headwear.",
 	shop: ["clothing"],
@@ -784,6 +812,7 @@
 	type: ["costume", "formal"],
 	gender: "m",
 	femininity: -200,
+	warmth: 70,
 	cost: 6000,
 	description: "Old fashioned sophistication.",
 	shop: ["clothing"],
@@ -812,6 +841,7 @@
 	type: ["rainproof"],
 	gender: "n",
 	femininity: 0,
+	warmth: 30,
 	cost: 1500,
 	description: "Keeps the rain off, but attracts attention.",
 	shop: ["clothing"],
@@ -840,6 +870,7 @@
 	type: ["costume", "athletic", "riding"],
 	gender: "n",
 	femininity: 0,
+	warmth: 40,
 	cost: 15000,
 	description: "For serious riding.",
 	shop: ["clothing"],
diff --git a/game/base-clothing/clothing-legs.twee b/game/base-clothing/clothing-legs.twee
index 9f7b699a8a5e4bec714a6843392bdd1d8f3b5af1..cd2965209537d59031397f15dd6df85e057fcc26 100644
--- a/game/base-clothing/clothing-legs.twee
+++ b/game/base-clothing/clothing-legs.twee
@@ -19,6 +19,7 @@
 	colour_options: [],
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -49,6 +50,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 1000,
 	description: "They don't conceal much.",
 	shop: ["clothing"],
@@ -78,6 +80,7 @@
 	type: ["school"],
 	gender: "m",
 	femininity: -100,
+	warmth: 30,
 	cost: 500,
 	description: "Cushioned and breathable.",
 	shop: ["clothing"],
@@ -107,6 +110,7 @@
 	type: ["school"],
 	gender: "f",
 	femininity: 100,
+	warmth: 30,
 	cost: 500,
 	description: "Cushioned and breathable.",
 	shop: ["clothing"],
@@ -136,6 +140,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 50,
 	cost: 1500,
 	description: "Attractive and alluring.",
 	shop: ["clothing"],
@@ -165,6 +170,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 300,
+	warmth: 25,
 	cost: 1500,
 	description: "Attractive and alluring.",
 	shop: ["clothing"],
@@ -194,6 +200,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 1700,
 	description: "Attractive and alluring.",
 	shop: ["clothing"],
@@ -223,6 +230,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 300,
+	warmth: 55,
 	cost: 4000,
 	description: "Sexy.",
 	shop: ["clothing"],
@@ -251,6 +259,7 @@
 	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
 	type: ["normal"],
 	gender: "n",
+	warmth: 70,
 	cost: 1500,
 	description: "Cosy.",
 	shop: ["clothing"],
@@ -280,6 +289,7 @@
 	type: ["costume"],
 	gender: "f",
 	femininity: 200,
+	warmth: 70,
 	cost: 2500,
 	description: "Festive.",
 	shop: ["forest"],
@@ -307,6 +317,7 @@
 	colour_options: [],
 	type: ["costume", "serving"],
 	gender: "n",
+	warmth: 5,
 	cost: 25000,
 	description: "Exotic and eye-catching.",
 	shop: ["clothing"],
@@ -335,6 +346,7 @@
 	colour_options: [],
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -364,6 +376,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 50,
 	cost: 3000,
 	description: "Brimming with personality.",
 	shop: ["clothing"],
diff --git a/game/base-clothing/clothing-lower.twee b/game/base-clothing/clothing-lower.twee
index 1ceb23057dd3308dd5cf71bec614b3e0810f6649..1dabae698d3ee5a1bc54003b9f79d268070f63cf 100644
--- a/game/base-clothing/clothing-lower.twee
+++ b/game/base-clothing/clothing-lower.twee
@@ -28,6 +28,7 @@
 	type: ["naked"],
 	set: "lower",
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -70,6 +71,7 @@
 	set: "sundress",
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 0,
 	description: "Great for frolicking.",
 	shop: ["clothing"],
@@ -111,6 +113,7 @@
 	type: ["sleep"],
 	set: "lower",
 	gender: "n",
+	warmth: 50,
 	cost: 1000,
 	description: "Keeps you warm at night.",
 	shop: ["clothing"],
@@ -151,6 +154,7 @@
 	type: ["normal"],
 	set: "lower",
 	gender: "n",
+	warmth: 25,
 	cost: 0,
 	description: "Not very secure.",
 	shop: [],
@@ -191,6 +195,7 @@
 	type: ["normal", "maid", "serving"],
 	set: "lower",
 	gender: "n",
+	warmth: 15,
 	cost: 800,
 	description: "Covers little.",
 	shop: ["clothing"],
@@ -231,6 +236,7 @@
 	type: ["normal"],
 	set: "lower",
 	gender: "n",
+	warmth: 20,
 	cost: 1000,
 	description: "Cool and loose-fitting.",
 	shop: ["clothing"],
@@ -272,6 +278,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -100,
+	warmth: 30,
 	cost: 2500,
 	description: "Proper school uniform.",
 	shop: ["clothing"],
@@ -313,6 +320,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 30,
 	cost: 2500,
 	description: "Proper school uniform.",
 	shop: ["clothing"],
@@ -353,6 +361,7 @@
 	type: ["swim"],
 	set: "lower",
 	gender: "n",
+	warmth: 5,
 	cost: 0,
 	description: "Plants tied loose together.",
 	shop: [],
@@ -394,6 +403,7 @@
 	set: "evening gown",
 	gender: "f",
 	femininity: 200,
+	warmth: 50,
 	cost: 0,
 	description: "For formal nights out.",
 	shop: ["clothing"],
@@ -436,6 +446,7 @@
 	set: "ballgown",
 	gender: "f",
 	femininity: 200,
+	warmth: 50,
 	cost: 0,
 	description: "Extravagant.",
 	shop: ["clothing"],
@@ -477,6 +488,7 @@
 	type: ["formal"],
 	set: "kimono",
 	gender: "n",
+	warmth: 40,
 	cost: 0,
 	description: "Exotic.",
 	shop: ["clothing"],
@@ -518,6 +530,7 @@
 	type: ["formal"],
 	set: "kimonomini",
 	gender: "n",
+	warmth: 15,
 	cost: 0,
 	description: "Exotic. Shows off your legs.",
 	shop: ["clothing"],
@@ -560,6 +573,7 @@
 	set: "maid",
 	gender: "f",
 	femininity: 200,
+	warmth: 35,
 	cost: 0,
 	description: "For looking cute while cleaning.",
 	shop: ["clothing"],
@@ -602,6 +616,7 @@
 	set: "nun",
 	gender: "f",
 	femininity: 200,
+	warmth: 60,
 	cost: 0,
 	description: "Holy outfit for those sworn to purity.",
 	shop: ["clothing"],
@@ -643,6 +658,7 @@
 	type: ["normal"],
 	set: "towellarge",
 	gender: "n",
+	warmth: 20,
 	cost: 0,
 	description: "Not very secure.",
 	shop: [],
@@ -685,6 +701,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -200,
+	warmth: 60,
 	cost: 20000,
 	description: "Smart and sophisticated.",
 	shop: ["clothing"],
@@ -725,6 +742,7 @@
 	type: ["swim"],
 	set: "lower",
 	gender: "n",
+	warmth: 15,
 	cost: 3500,
 	description: "Good in and out of water.",
 	shop: ["clothing"],
@@ -766,6 +784,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -200,
+	warmth: 45,
 	cost: 6000,
 	description: "Tight-fitting but formal.",
 	shop: ["clothing"],
@@ -807,6 +826,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 25,
 	cost: 6000,
 	description: "Easy to move in. Shows off your thigh.",
 	shop: ["clothing"],
@@ -848,6 +868,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 15,
 	cost: 4000,
 	description: "Easy to move in.",
 	shop: ["clothing"],
@@ -888,6 +909,7 @@
 	type: ["normal", "athletic"],
 	set: "lower",
 	gender: "n",
+	warmth: 25,
 	cost: 2500,
 	description: "Tight.",
 	shop: ["clothing"],
@@ -928,6 +950,7 @@
 	type: ["normal"],
 	set: "lower",
 	gender: "n",
+	warmth: 30,
 	cost: 5000,
 	description: "Tough and fashionable.",
 	shop: ["clothing"],
@@ -968,6 +991,7 @@
 	type: ["normal"],
 	set: "lower",
 	gender: "n",
+	warmth: 40,
 	cost: 3000,
 	description: "Covers you from waist to foot.",
 	shop: ["clothing"],
@@ -1009,6 +1033,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 30,
 	cost: 2000,
 	description: "Conservative.",
 	shop: ["clothing"],
@@ -1050,6 +1075,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 10,
 	cost: 3000,
 	description: "A breeze away from a malfunction.",
 	shop: ["clothing"],
@@ -1091,6 +1117,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 50,
 	cost: 4000,
 	description: "Prim and proper.",
 	shop: ["clothing"],
@@ -1132,6 +1159,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 30,
 	cost: 1500,
 	description: "Too short to meet regulation skirt length. You don't think anyone will complain.",
 	shop: ["clothing"],
@@ -1173,6 +1201,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -100,
+	warmth: 50,
 	cost: 4000,
 	description: "Gives perverts little to gawk at.",
 	shop: ["clothing"],
@@ -1213,6 +1242,7 @@
 	type: ["normal"],
 	set: "sweaterlarge",
 	gender: "n",
+	warmth: 10,
 	cost: 0,
 	description: "Snug, comfy and long enough to cover your unmentionables. Just.",
 	shop: ["clothing"],
@@ -1255,6 +1285,7 @@
 	set: "witch",
 	gender: "f",
 	femininity: 200,
+	warmth: 50,
 	cost: 0,
 	description: "Popular Halloween costume. Coloured with forest dyes.",
 	shop: ["forest"],
@@ -1296,6 +1327,7 @@
 	type: ["normal"],
 	set: "lower",
 	gender: "n",
+	warmth: 15,
 	cost: 4000,
 	description: "Tight yet cool.",
 	shop: ["clothing"],
@@ -1337,6 +1369,7 @@
 	set: "pinksweaterlarge",
 	gender: "f",
 	femininity: 100,
+	warmth: 10,
 	cost: 0,
 	description: "Snug, comfy and long enough to cover your unmentionables. Just.",
 	shop: ["clothing"],
@@ -1378,6 +1411,7 @@
 	type: ["costume"],
 	set: "lower",
 	gender: "n",
+	warmth: 60,
 	cost: 4000,
 	description: "Festive.",
 	shop: ["forest"],
@@ -1418,6 +1452,7 @@
 	set: "christmasdress",
 	gender: "f",
 	femininity: 200,
+	warmth: 45,
 	cost: 0,
 	description: "Festive. The skirt is rather short.",
 	shop: ["forest"],
@@ -1458,6 +1493,7 @@
 	set: "monk",
 	gender: "m",
 	femininity: -200,
+	warmth: 60,
 	cost: 0,
 	description: "Holy outfit for those sworn to purity.",
 	shop: ["clothing"],
@@ -1500,6 +1536,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -200,
+	warmth: 35,
 	cost: 6000,
 	description: "Ready for a hard day's work.",
 	shop: ["clothing"],
@@ -1541,6 +1578,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 10,
 	cost: 12000,
 	description: "Exotic, and sturdier than it looks.",
 	shop: ["forest"],
@@ -1581,6 +1619,7 @@
 	type: ["binding"],
 	set: "straightjacket",
 	gender: "n",
+	warmth: 10,
 	cost: 0,
 	description: "Protects you from yourself.",
 	shop: [],
@@ -1622,6 +1661,7 @@
 	type: ["normal"],
 	set: "lower",
 	gender: "n",
+	warmth: 40,
 	cost: 8000,
 	description: "Smart and casual.",
 	shop: ["clothing"],
@@ -1663,6 +1703,7 @@
 	set: "gingham",
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 0,
 	description: "A comfortable classic.",
 	shop: ["clothing"],
@@ -1704,6 +1745,7 @@
 	type: ["normal"],
 	set: "overalls",
 	gender: "n",
+	warmth: 40,
 	cost: 0,
 	description: "Hard to take off.",
 	shop: ["clothing"],
@@ -1746,6 +1788,7 @@
 	set: "cheongsam",
 	gender: "f",
 	femininity: 200,
+	warmth: 35,
 	cost: 0,
 	description: "Exotic.",
 	shop: ["clothing"],
@@ -1786,6 +1829,7 @@
 	anus_exposed_base: 1,
 	type: ["formal"],
 	set: "cheongsamshort",
+	warmth: 20,
 	gender: "f",
 	femininity: 200,
 	cost: 0,
@@ -1830,6 +1874,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 10,
 	cost: 10000,
 	description: "Makes you feel rather girly.",
 	shop: [],
@@ -1870,6 +1915,7 @@
 	type: ["normal"],
 	set: "lower",
 	gender: "n",
+	warmth: 40,
 	cost: 11000,
 	description: "Made of a quality twill fabric. Smart, classic style of pants with a flat front and a slightly fitted look.",
 	shop: ["clothing"],
@@ -1911,6 +1957,7 @@
 	set: "gothic",
 	gender: "f",
 	femininity: 200,
+	warmth: 35,
 	cost: 0,
 	description: "A fine and seductive gothic gown. A right pain to put on.",
 	shop: ["clothing"],
@@ -1953,6 +2000,7 @@
 	set: "lower",
 	gender: "n",
 	femininity: 0,
+	warmth: 40,
 	cost: 8000,
 	description: "For creatures of the night.",
 	shop: ["clothing"],
@@ -1994,6 +2042,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -200,
+	warmth: 40,
 	cost: 1500,
 	description: "For when your clientele expect a certain class.",
 	shop: ["clothing"],
@@ -2035,6 +2084,7 @@
 	set: "leder",
 	gender: "m",
 	femininity: -200,
+	warmth: 50,
 	cost: 0,
 	description: "For when your clientele expect a certain class.",
 	shop: ["clothing"],
@@ -2077,6 +2127,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -200,
+	warmth: 20,
 	cost: 7800,
 	description: "Robust and martial.",
 	shop: ["clothing"],
@@ -2118,6 +2169,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -200,
+	warmth: 40,
 	cost: 3000,
 	description: "For long days away from shore.",
 	shop: ["clothing"],
@@ -2159,6 +2211,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -200,
+	warmth: 25,
 	cost: 2800,
 	description: "For hot days away from shore.",
 	shop: ["clothing"],
@@ -2200,6 +2253,7 @@
 	set: "lower",
 	gender: "m",
 	femininity: -200,
+	warmth: 25,
 	cost: 5500,
 	description: "Protective legwear. Used in a foreign sport.",
 	shop: ["clothing"],
@@ -2241,6 +2295,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 2200,
 	description: "Old fashioned PE bloomers from a foreign land.",
 	shop: ["clothing"],
@@ -2282,6 +2337,7 @@
 	set: "lower",
 	gender: "n",
 	femininity: 0,
+	warmth: 50,
 	cost: 7000,
 	description: "For wearing with riding boots.",
 	shop: ["clothing"],
@@ -2323,6 +2379,7 @@
 	set: "lower",
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 5000,
 	description: "Part of a uniform used in a foreign sport.",
 	shop: ["clothing"],
@@ -2364,6 +2421,7 @@
 	set: "lower",
 	gender: "n",
 	femininity: 0,
+	warmth: 15,
 	cost: 500,
 	description: "Feels like it's made from toilet paper.",
 	shop: ["forest"],
@@ -2376,6 +2434,49 @@
 	location: 0,
 	iconFile: 0,
 	accIcon: 0
+},
+
+	{index: 58,
+	name: "diving suit bottom",
+	name_cap: "diving suit bottom",
+	variable: "diving",
+	integrity: 200,
+	integrity_max: 200,
+	fabric_strength: 50,
+	reveal: 500,
+	word: "a",
+	one_piece: 1,
+	skirt: 0,
+	skirt_down: 0,
+	state: "waist",
+	state_base: "waist",
+	plural: 0,
+	colour: 0,
+	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	exposed: 0,
+	exposed_base: 0,
+	vagina_exposed: 0,
+	vagina_exposed_base: 0,
+	anus_exposed: 0,
+	anus_exposed_base: 0,
+	type: ["swim", "diving"],
+	set: "diving",
+	gender: "n",
+	femininity: 0,
+	warmth: 40,
+	cost: 0,
+	description: "Will insulate you underwater, letting you swim in the cold.",
+	shop: ["clothing"],
+	accessory: 0,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	high_img: 0,
+	back_img: 0,
+	cursed: 0,
+	location: 0,
+	iconFile: 0,
+	accIcon: 0,
+	outfitSecondary: ["upper","diving suit"]
 }
 
 ]>>
diff --git a/game/base-clothing/clothing-neck.twee b/game/base-clothing/clothing-neck.twee
index e704bf690ccaea2b169c07e9bc3dbd594bed7113..4704eee662841e9073f15704badc13c415834d1f 100644
--- a/game/base-clothing/clothing-neck.twee
+++ b/game/base-clothing/clothing-neck.twee
@@ -17,6 +17,7 @@
 	colour_options: [],
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -45,6 +46,7 @@
 	colour_options: [],
 	type: ["fetish"],
 	gender: "n",
+	warmth: 30,
 	cost: 20000,
 	description: "Requires a special tool to unlock.",
 	shop: [],
@@ -72,6 +74,7 @@
 	colour_options: [],
 	type: ["costume", "serving"],
 	gender: "n",
+	warmth: 10,
 	cost: 3000,
 	description: "A collar and tie. Part of the bunny outfit.",
 	shop: ["clothing"],
@@ -99,6 +102,7 @@
 	colour_options: [],
 	type: ["holy"],
 	gender: "n",
+	warmth: 5,
 	cost: 1000,
 	description: "Heavy. So you don't forget you're wearing it.",
 	shop: ["forest"],
@@ -126,6 +130,7 @@
 	colour_options: [],
 	type: ["dark"],
 	gender: "n",
+	warmth: 0,
 	cost: 10000,
 	description: "Absorbs all light.",
 	shop: ["forest"],
@@ -153,6 +158,7 @@
 	colour_options: [],
 	type: ["holy"],
 	gender: "n",
+	warmth: 3,
 	cost: 2000,
 	description: "An old holy symbol on a simple string.",
 	shop: ["forest"],
@@ -180,6 +186,7 @@
 	colour_options: [],
 	type: ["costume", "serving"],
 	gender: "n",
+	warmth: 10,
 	cost: 25000,
 	description: "Exotic and eye-catching.",
 	shop: ["clothing"],
@@ -207,6 +214,7 @@
 	colour_options: [],
 	type: ["costume", "serving", "eerie"],
 	gender: "n",
+	warmth: 15,
 	cost: 1500,
 	description: "Jingles.",
 	shop: ["clothing"],
@@ -234,6 +242,7 @@
 	colour_options: [],
 	type: ["costume", "eerie"],
 	gender: "n",
+	warmth: 15,
 	cost: 1500,
 	description: "Jangles.",
 	shop: ["forest"],
@@ -262,6 +271,7 @@
 	type: ["formal"],
 	gender: "f",
 	femininity: 100,
+	warmth: 10,
 	cost: 1800,
 	description: "Glamorous.",
 	shop: ["clothing"],
@@ -290,6 +300,7 @@
 	type: ["fetish", "costume", "eerie"],
 	gender: "n",
 	femininity: 0,
+	warmth: 20,
 	cost: 1500,
 	description: "Menaces with spikes of steel.",
 	shop: ["clothing"],
@@ -318,6 +329,7 @@
 	type: ["normal"],
 	gender: "f",
 	femininity: 200,
+	warmth: 15,
 	cost: 2100,
 	description: "Cute.",
 	shop: ["clothing"],
@@ -346,6 +358,7 @@
 	type: ["fetish"],
 	gender: "n",
 	femininity: 0,
+	warmth: 30,
 	cost: 2500,
 	description: "Ready for leashing.",
 	shop: ["clothing"],
diff --git a/game/base-clothing/clothing-over_head.twee b/game/base-clothing/clothing-over_head.twee
index c923116c1d236b83a6678638ff23ae4d4f6269cd..83fe74a0a22542048f283876e590db60424d155d 100644
--- a/game/base-clothing/clothing-over_head.twee
+++ b/game/base-clothing/clothing-over_head.twee
@@ -17,6 +17,7 @@
 	colour_options: [],
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -46,6 +47,7 @@
 	colour_options: [],
 	type: ["rainproof"],
 	gender: "n",
+	warmth: 65,
 	cost: 0,
 	description: "Protects you from rain.",
 	shop: ["clothing"],
diff --git a/game/base-clothing/clothing-over_lower.twee b/game/base-clothing/clothing-over_lower.twee
index 8bd113a5ee646b3a6c927d74852bfe4aa3f44c6c..26753f041830727bf0cc3a25934a8be3dbd7c216 100644
--- a/game/base-clothing/clothing-over_lower.twee
+++ b/game/base-clothing/clothing-over_lower.twee
@@ -26,6 +26,7 @@
 	anus_exposed_base: 1,
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -69,6 +70,7 @@
 	set: "froggy",
 	gender: "n",
 	femininity: 0,
+	warmth: 65,
 	cost: 0,
 	description: "Protects you from rain.",
 	shop: ["clothing"],
diff --git a/game/base-clothing/clothing-over_upper.twee b/game/base-clothing/clothing-over_upper.twee
index d160176200246ab9076b30ae271fa208a97a6f84..7d4edc0d2d98db75d2933f6498a8bdd2f0a37fe0 100644
--- a/game/base-clothing/clothing-over_upper.twee
+++ b/game/base-clothing/clothing-over_upper.twee
@@ -28,6 +28,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	exposed_base: 2,
 	type: ["naked"],
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -69,6 +70,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "froggy",
 	gender: "n",
 	femininity: 0,
+	warmth: 70,
 	cost: 4500,
 	description: "Protects you from the rain.",
 	shop: ["clothing"],
@@ -109,6 +111,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["naked"],
 	set: "over_upper",
 	gender: "n",
+	warmth: 5,
 	cost: 0,
 	description: "It won't last long.",
 	shop: [],
diff --git a/game/base-clothing/clothing-under-upper.twee b/game/base-clothing/clothing-under-upper.twee
index 8948d4d316dd1ff4c7ff812f0ce9997a413cc152..7ba8b3c646490e326e52030c672efa9dd4b7731f 100644
--- a/game/base-clothing/clothing-under-upper.twee
+++ b/game/base-clothing/clothing-under-upper.twee
@@ -26,6 +26,7 @@
 	type: ["naked"],
 	set: "under_upper",
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -66,6 +67,7 @@
 	set: "under_upper",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 2000,
 	description: "Revealing swimwear.",
 	shop: ["clothing"],
@@ -105,6 +107,7 @@
 	set: "school swimsuit",
 	gender: "f",
 	femininity: 300,
+	warmth: 20,
 	cost: 2500,
 	description: "Proper school swimwear.",
 	shop: ["clothing"],
@@ -144,6 +147,7 @@
 	type: ["dance", "athletic"],
 	set: "leotard",
 	gender: "n",
+	warmth: 20,
 	cost: 3000,
 	description: "Form fitting.",
 	shop: ["clothing"],
@@ -183,6 +187,7 @@
 	type: ["dance", "athletic"],
 	set: "long leotard",
 	gender: "n",
+	warmth: 30,
 	cost: 3500,
 	description: "Form fitting. Covers your legs.",
 	shop: ["clothing"],
@@ -222,6 +227,7 @@
 	type: ["dance", "athletic"],
 	set: "skimpy leotard",
 	gender: "n",
+	warmth: 15,
 	cost: 2500,
 	description: "Form fitting. Shows off your thighs.",
 	shop: ["clothing"],
@@ -262,6 +268,7 @@
 	set: "foreign school swimsuit",
 	gender: "f",
 	femininity: 300,
+	warmth: 20,
 	cost: 2500,
 	description: "Official uniform swimsuit for the local school, but in a style popular in a foreign country.",
 	shop: ["clothing"],
@@ -302,6 +309,7 @@
 	set: "swimsuit",
 	gender: "f",
 	femininity: 300,
+	warmth: 20,
 	cost: 7500,
 	description: "Sexy.",
 	shop: ["clothing"],
@@ -342,6 +350,7 @@
 	set: "leotardbunny",
 	gender: "f",
 	femininity: 300,
+	warmth: 25,
 	cost: 5000,
 	description: "Waitress attire. Tougher than it looks. Part of a bunny outfit, and has a fluffy white tail on the back to prove it.",
 	shop: ["clothing"],
@@ -382,6 +391,7 @@
 	set: "under_upper",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 3000,
 	description: "For when a regular bra just isn't cute enough.",
 	shop: ["clothing"],
@@ -422,6 +432,7 @@
 	set: "under_upper",
 	gender: "f",
 	femininity: 300,
+	warmth: 8,
 	cost: 1000,
 	description: "Hints at what lies beneath.",
 	shop: ["clothing"],
@@ -461,6 +472,7 @@
 	set: "under_upper",
 	gender: "f",
 	femininity: 300,
+	warmth: 5,
 	cost: 2400,
 	description: "Skirts the borders of decency.",
 	shop: ["clothing"],
@@ -500,6 +512,7 @@
 	set: "under_upper",
 	gender: "f",
 	femininity: 300,
+	warmth: 15,
 	cost: 500,
 	description: "No-nonsense.",
 	shop: ["clothing"],
@@ -539,6 +552,7 @@
 	set: "under_upper",
 	gender: "f",
 	femininity: 300,
+	warmth: 20,
 	cost: 2000,
 	description: "Supportive.",
 	shop: ["clothing"],
@@ -577,6 +591,7 @@
 	type: ["fetish"],
 	set: "under_upper",
 	gender: "n",
+	warmth: 10,
 	cost: 3500,
 	description: "Doesn't conceal a thing.",
 	shop: ["clothing"],
@@ -615,6 +630,7 @@
 	type: ["fetish", "naked"],
 	set: "under_upper",
 	gender: "n",
+	warmth: 30,
 	cost: 2500,
 	description: "Constricts your tummy and emphasises your chest.",
 	shop: ["clothing"],
@@ -654,6 +670,7 @@
 	set: "under_upper",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 600,
 	description: "Brimming with personality.",
 	shop: ["clothing"],
@@ -693,6 +710,7 @@
 	set: "under_upper",
 	gender: "n",
 	femininity: 0,
+	warmth: 35,
 	cost: 600,
 	description: "Flattens and protects.",
 	shop: ["clothing"],
diff --git a/game/base-clothing/clothing-under.twee b/game/base-clothing/clothing-under.twee
index 99ad37e1d67f27d9cd9fea3535b9a4b90dc059a8..b07a8476e6010f7a211dde9f4e3942f0af268491 100644
--- a/game/base-clothing/clothing-under.twee
+++ b/game/base-clothing/clothing-under.twee
@@ -28,6 +28,7 @@
 	anal_shield: 0,
 	set: "under_lower",
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -69,6 +70,7 @@
 	set: "under_lower",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 500,
 	description: "No-nonsense.",
 	shop: ["clothing"],
@@ -109,6 +111,7 @@
 	set: "under_lower",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 2000,
 	description: "Revealing swimwear.",
 	shop: ["clothing"],
@@ -149,6 +152,7 @@
 	set: "under_lower",
 	gender: "f",
 	femininity: 300,
+	warmth: 8,
 	cost: 1500,
 	description: "Fashionable and sexy.",
 	shop: ["clothing"],
@@ -189,6 +193,7 @@
 	set: "under_lower",
 	gender: "m",
 	femininity: -300,
+	warmth: 10,
 	cost: 500,
 	description: "Snug.",
 	shop: ["clothing"],
@@ -229,6 +234,7 @@
 	set: "under_lower",
 	gender: "n",
 	femininity: 500,
+	warmth: 20,
 	cost: 0,
 	description: "Restrictive.",
 	shop: [],
@@ -267,6 +273,7 @@
 	type: ["swim", "school", "tanLines"],
 	anal_shield: 0,
 	set: "school swimsuit",
+	warmth: 10,
 	gender: "f",
 	femininity: 300,
 	cost: 0,
@@ -310,6 +317,7 @@
 	set: "under_lower",
 	gender: "m",
 	femininity: -300,
+	warmth: 25,
 	cost: 2000,
 	description: "Proper school swimwear.",
 	shop: ["clothing"],
@@ -349,6 +357,7 @@
 	anal_shield: 0,
 	set: "leotard",
 	gender: "n",
+	warmth: 20,
 	cost: 0,
 	description: "Form fitting.",
 	shop: ["clothing"],
@@ -389,6 +398,7 @@
 	anal_shield: 0,
 	set: "long leotard",
 	gender: "n",
+	warmth: 40,
 	cost: 0,
 	description: "Form fitting. Covers your legs.",
 	shop: ["clothing"],
@@ -429,6 +439,7 @@
 	anal_shield: 0,
 	set: "skimpy leotard",
 	gender: "n",
+	warmth: 10,
 	cost: 0,
 	description: "Form fitting. Shows off your thighs.",
 	shop: ["clothing"],
@@ -470,6 +481,7 @@
 	set: "foreign school swimsuit",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 0,
 	description: "Official uniform swimsuit for the local school, but in a style popular in a foreign country.",
 	shop: ["clothing"],
@@ -511,6 +523,7 @@
 	set: "swimsuit",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 0,
 	description: "Sexy.",
 	shop: ["clothing"],
@@ -552,6 +565,7 @@
 	set: "leotardbunny",
 	gender: "f",
 	femininity: 300,
+	warmth: 5,
 	cost: 0,
 	description: "Waitress attire. Tougher than it looks. Part of a bunny outfit, and has a tufty white tail on the back to prove it.",
 	shop: ["clothing"],
@@ -593,6 +607,7 @@
 	set: "under_lower",
 	gender: "f",
 	femininity: 300,
+	warmth: 20,
 	cost: 1000,
 	description: "Cute and comfy.",
 	shop: ["clothing"],
@@ -633,6 +648,7 @@
 	set: "under_lower",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 3000,
 	description: "For when mundane panties aren't cute enough.",
 	shop: ["clothing"],
@@ -672,6 +688,7 @@
 	anal_shield: 0,
 	set: "under_lower",
 	gender: "n",
+	warmth: 2,
 	cost: 1500,
 	description: "Protects the essentials. Just.",
 	shop: ["clothing"],
@@ -712,6 +729,7 @@
 	set: "under_lower",
 	gender: "f",
 	femininity: 300,
+	warmth: 5,
 	cost: 1200,
 	description: "Open access.",
 	shop: ["clothing"],
@@ -752,6 +770,7 @@
 	set: "under_lower",
 	gender: "f",
 	femininity: 300,
+	warmth: 5,
 	cost: 2400,
 	description: "Skirts the borders of decency.",
 	shop: ["clothing"],
@@ -792,6 +811,7 @@
 	set: "under_lower",
 	gender: "m",
 	femininity: -300,
+	warmth: 8,
 	cost: 2400,
 	description: "Show what you've got. Without getting arrested.",
 	shop: ["clothing"],
@@ -832,6 +852,7 @@
 	set: "under_lower",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 600,
 	description: "Brimming with personality.",
 	shop: ["clothing"],
@@ -871,6 +892,7 @@
 	anal_shield: 0,
 	set: "under_lower",
 	gender: "n",
+	warmth: 20,
 	cost: 100,
 	description: "Revealing, unprotective, sturdy, and savage.",
 	shop: ["forest"],
@@ -911,6 +933,7 @@
 	set: "under_lower",
 	gender: "f",
 	femininity: 300,
+	warmth: 5,
 	cost: 1500,
 	description: "Protects the essentials. Just.",
 	shop: ["clothing"],
diff --git a/game/base-clothing/clothing-upper.twee b/game/base-clothing/clothing-upper.twee
index 0a66b6357704d09a948e20be23808f55933654ea..e3aba59097780a65f1c18f1e143c339e0945017f 100644
--- a/game/base-clothing/clothing-upper.twee
+++ b/game/base-clothing/clothing-upper.twee
@@ -29,6 +29,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["naked"],
 	set: "upper",
 	gender: "n",
+	warmth: 0,
 	cost: 0,
 	description: "naked",
 	shop: [],
@@ -69,6 +70,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "sundress",
 	gender: "f",
 	femininity: 200,
+	warmth: 30,
 	cost: 1500,
 	description: "Great for frolicking.",
 	shop: ["clothing"],
@@ -108,6 +110,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["sleep"],
 	set: "upper",
 	gender: "n",
+	warmth: 50,
 	cost: 1000,
 	description: "Keeps you warm at night.",
 	shop: ["clothing"],
@@ -146,6 +149,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 20,
 	cost: 0,
 	description: "Not very secure.",
 	shop: [],
@@ -183,6 +187,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 30,
 	cost: 1000,
 	description: "Cool and casual.",
 	shop: ["clothing"],
@@ -221,6 +226,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["school"],
 	set: "upper",
 	gender: "n",
+	warmth: 40,
 	cost: 2000,
 	description: "The proper shirt for school.",
 	shop: ["clothing"],
@@ -259,6 +265,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["swim"],
 	set: "upper",
 	gender: "n",
+	warmth: 5,
 	cost: 0,
 	description: "Plants tied loose together.",
 	shop: [],
@@ -298,6 +305,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "evening gown",
 	gender: "f",
 	femininity: 200,
+	warmth: 40,
 	cost: 12000,
 	description: "For formal nights out.",
 	shop: ["clothing"],
@@ -337,6 +345,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 25,
 	cost: 2500,
 	description: "Helps stay cool.",
 	shop: ["clothing"],
@@ -376,6 +385,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "ballgown",
 	gender: "f",
 	femininity: 200,
+	warmth: 45,
 	cost: 42000,
 	description: "Extravagant.",
 	shop: ["clothing"],
@@ -415,6 +425,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["formal"],
 	set: "kimono",
 	gender: "n",
+	warmth: 35,
 	cost: 14000,
 	description: "Exotic.",
 	shop: ["clothing"],
@@ -454,6 +465,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["formal"],
 	set: "kimonomini",
 	gender: "n",
+	warmth: 35,
 	cost: 12000,
 	description: "Exotic. Shows off your legs.",
 	shop: ["clothing"],
@@ -494,6 +506,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "maid",
 	gender: "f",
 	femininity: 200,
+	warmth: 40,
 	cost: 2500,
 	description: "For looking cute while cleaning.",
 	shop: ["clothing"],
@@ -534,6 +547,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "nun",
 	gender: "f",
 	femininity: 200,
+	warmth: 50,
 	cost: 6000,
 	description: "Holy outfit for those sworn to purity.",
 	shop: ["clothing"],
@@ -573,6 +587,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "towellarge",
 	gender: "n",
+	warmth: 25,
 	cost: 0,
 	description: "Not very secure.",
 	shop: [],
@@ -613,6 +628,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -200,
+	warmth: 50,
 	cost: 22000,
 	description: "Smart and sophisticated.",
 	shop: ["clothing"],
@@ -652,6 +668,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 200,
+	warmth: 30,
 	cost: 1000,
 	description: "Loose and comfortable.",
 	shop: ["clothing"],
@@ -691,6 +708,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 200,
+	warmth: 10,
 	cost: 1500,
 	description: "Loose and comfortable.",
 	shop: ["clothing"],
@@ -730,6 +748,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 300,
+	warmth: 10,
 	cost: 1500,
 	description: "Loose, comfortable, and transparent.",
 	shop: ["clothing"],
@@ -769,6 +788,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 1500,
 	description: "Show off your tummy.",
 	shop: ["clothing"],
@@ -808,6 +828,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 200,
+	warmth: 40,
 	cost: 2500,
 	description: "Girl's school shirt design from a foreign country. Accepted by the head of the local school.",
 	shop: ["forest"],
@@ -847,6 +868,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 200,
+	warmth: 20,
 	cost: 2000,
 	description: "Not too tight.",
 	shop: ["clothing"],
@@ -885,6 +907,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 60,
 	cost: 4000,
 	description: "Keeps your shoulders warm and your waist displayed.",
 	shop: ["clothing"],
@@ -923,6 +946,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 55,
 	cost: 6000,
 	description: "Snug and comfy.",
 	shop: ["clothing"],
@@ -961,6 +985,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "sweaterlarge",
 	gender: "n",
+	warmth: 55,
 	cost: 7000,
 	description: "Snug, comfy and long enough to cover your unmentionables. Just.",
 	shop: ["clothing"],
@@ -1001,6 +1026,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "witch",
 	gender: "f",
 	femininity: 200,
+	warmth: 35,
 	cost: 4500,
 	description: "Popular Halloween costume. Coloured with forest dyes.",
 	shop: ["forest"],
@@ -1041,6 +1067,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -200,
+	warmth: 30,
 	cost: 4500,
 	description: "The label says it's second-hand. Smells like garlic.",
 	shop: ["forest"],
@@ -1080,6 +1107,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 200,
+	warmth: 30,
 	cost: 7500,
 	description: "SLUT is printed on the front. Sure to attract attention.",
 	shop: ["forest"],
@@ -1119,6 +1147,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 100,
+	warmth: 55,
 	cost: 6000,
 	description: "Snug and comfy.",
 	shop: ["clothing"],
@@ -1158,6 +1187,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "pinksweaterlarge",
 	gender: "f",
 	femininity: 100,
+	warmth: 55,
 	cost: 7000,
 	description: "Snug, comfy and long enough to cover your unmentionables. Just.",
 	shop: ["clothing"],
@@ -1197,6 +1227,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["costume"],
 	set: "upper",
 	gender: "n",
+	warmth: 50,
 	cost: 4000,
 	description: "Festive.",
 	shop: ["forest"],
@@ -1235,6 +1266,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "christmasdress",
 	gender: "f",
 	femininity: 200,
+	warmth: 50,
 	cost: 8000,
 	description: "Festive. The skirt is rather short.",
 	shop: ["forest"],
@@ -1274,6 +1306,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "monk",
 	gender: "m",
 	femininity: -200,
+	warmth: 50,
 	cost: 6000,
 	description: "Holy outfit for those sworn to purity.",
 	shop: ["clothing"],
@@ -1313,6 +1346,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 30,
 	cost: 4000,
 	description: "Cool and distinctive.",
 	shop: ["clothing"],
@@ -1352,6 +1386,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 300,
+	warmth: 15,
 	cost: 12000,
 	description: "Exotic, and sturdier than it looks.",
 	shop: ["forest"],
@@ -1390,6 +1425,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["binding"],
 	set: "straightjacket",
 	gender: "n",
+	warmth: 40,
 	cost: 0,
 	description: "Protects you from yourself.",
 	shop: [],
@@ -1429,6 +1465,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 45,
 	cost: 3000,
 	description: "A classic pattern.",
 	shop: ["clothing"],
@@ -1468,6 +1505,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -100,
+	warmth: 35,
 	cost: 12000,
 	description: "For when you need to look your best.",
 	shop: ["clothing"],
@@ -1508,6 +1546,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "gingham",
 	gender: "f",
 	femininity: 200,
+	warmth: 30,
 	cost: 2000,
 	description: "A comfortable classic.",
 	shop: ["clothing"],
@@ -1547,6 +1586,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "overalls",
 	gender: "n",
+	warmth: 30,
 	cost: 4000,
 	description: "Hard to take off.",
 	shop: ["clothing"],
@@ -1587,6 +1627,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -100,
+	warmth: 30,
 	cost: 8000,
 	description: "Delinquent.",
 	shop: ["clothing"],
@@ -1626,6 +1667,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -100,
+	warmth: 30,
 	cost: 6000,
 	description: "Keeps the wind off your neck.",
 	shop: ["clothing"],
@@ -1664,6 +1706,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["cool"],
 	set: "upper",
 	gender: "n",
+	warmth: 25,
 	cost: 8000,
 	description: "Conforming isn't your style.",
 	shop: ["clothing"],
@@ -1702,6 +1745,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 60,
 	cost: 7000,
 	description: "Will keep you warm in winter.",
 	shop: ["clothing"],
@@ -1740,6 +1784,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 40,
 	cost: 1200,
 	description: "When you want to show just a little.",
 	shop: ["clothing"],
@@ -1778,6 +1823,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["normal"],
 	set: "upper",
 	gender: "n",
+	warmth: 60,
 	cost: 8000,
 	description: "Warm and stylish.",
 	shop: ["clothing"],
@@ -1817,6 +1863,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "cheongsam",
 	gender: "f",
 	femininity: 200,
+	warmth: 35,
 	cost: 14000,
 	description: "Exotic.",
 	shop: ["clothing"],
@@ -1857,6 +1904,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "cheongsamshort",
 	gender: "f",
 	femininity: 200,
+	warmth: 35,
 	cost: 12000,
 	description: "Exotic and revealing.",
 	shop: ["clothing"],
@@ -1897,6 +1945,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 200,
+	warmth: 10,
 	cost: 10000,
 	description: "Makes you feel rather girly.",
 	shop: [],
@@ -1936,6 +1985,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	type: ["formal"],
 	set: "upper",
 	gender: "n",
+	warmth: 35,
 	cost: 40000,
 	description: "Made of thick wool.",
 	shop: ["clothing"],
@@ -1975,6 +2025,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "gothic",
 	gender: "f",
 	femininity: 200,
+	warmth: 50,
 	cost: 42000,
 	description: "A right pain to put on.",
 	shop: ["clothing"],
@@ -2015,6 +2066,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "n",
 	femininity: 0,
+	warmth: 40,
 	cost: 12000,
 	description: "For creatures of the night.",
 	shop: ["clothing"],
@@ -2054,6 +2106,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "n",
 	femininity: 0,
+	warmth: 30,
 	cost: 6000,
 	description: "Protects you from the sun while swimming.",
 	shop: [],
@@ -2093,6 +2146,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -200,
+	warmth: 40,
 	cost: 1500,
 	description: "For when your clientele expect a certain class.",
 	shop: ["clothing"],
@@ -2132,6 +2186,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "leder",
 	gender: "n",
 	femininity: 0,
+	warmth: 40,
 	cost: 2500,
 	description: "Festive wear from a foreign land.",
 	shop: ["clothing"],
@@ -2172,6 +2227,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -200,
+	warmth: 25,
 	cost: 7800,
 	description: "Robust and martial.",
 	shop: ["clothing"],
@@ -2211,6 +2267,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -200,
+	warmth: 30,
 	cost: 3000,
 	description: "For long days away from shore.",
 	shop: ["clothing"],
@@ -2250,6 +2307,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -200,
+	warmth: 20,
 	cost: 2800,
 	description: "For hot days away from shore.",
 	shop: ["clothing"],
@@ -2289,6 +2347,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -200,
+	warmth: 60,
 	cost: 7000,
 	description: "Comes with shoulder pads. Used in a foreign sport.",
 	shop: ["clothing"],
@@ -2328,6 +2387,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 200,
+	warmth: 35,
 	cost: 3000,
 	description: "PE shirt from a foreign land.",
 	shop: ["clothing"],
@@ -2367,6 +2427,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "f",
 	femininity: 200,
+	warmth: 25,
 	cost: 5000,
 	description: "Part of a uniform used in a foreign sport.",
 	shop: ["clothing"],
@@ -2406,6 +2467,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -200,
+	warmth: 60,
 	cost: 12000,
 	description: "Strong and smart.",
 	shop: ["clothing"],
@@ -2445,6 +2507,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "m",
 	femininity: -100,
+	warmth: 40,
 	cost: 9000,
 	description: "Not a real letterman jacket, but looks the part, and made from high-quality materials.",
 	shop: ["clothing"],
@@ -2484,6 +2547,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "n",
 	femininity: 0,
+	warmth: 25,
 	cost: 30000,
 	description: "For flaunting those colours.",
 	shop: ["clothing"],
@@ -2523,6 +2587,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "n",
 	femininity: 0,
+	warmth: 60,
 	cost: 25000,
 	description: "Formal riding attire.",
 	shop: ["clothing"],
@@ -2562,6 +2627,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	set: "upper",
 	gender: "n",
 	femininity: 0,
+	warmth: 15,
 	cost: 500,
 	description: "Feels like it's made from toilet paper.",
 	shop: ["forest"],
@@ -2574,6 +2640,47 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	location: 0,
 	iconFile: 0,
  	accIcon: 0
+},
+
+	{index: 66,
+	name: "diving suit",
+	name_cap: "Diving suit",
+	variable: "diving",
+	integrity: 200,
+	integrity_max: 200,
+	fabric_strength: 50,
+	reveal: 500,
+	word: "a",
+	one_piece: 1,
+	strap: 0,
+	open: 0,
+	state: "waist",
+	state_base: "waist",
+	state_top: "chest",
+	state_top_base: "chest",
+	plural: 0,
+	colour: 0,
+	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	exposed: 0,
+	exposed_base: 0,
+	type: ["swim", "diving"],
+	set: "diving",
+	gender: "n",
+	femininity: 0,
+	warmth: 40,
+	cost: 22000,
+	description: "Will insulate you underwater, letting you swim in the cold.",
+	shop: ["clothing"],
+	accessory: 0,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	sleeve_img: 1,
+	breast_img: 1,
+	cursed: 0,
+	location: 0,
+	iconFile: 0,
+ 	accIcon: 0,
+	outfitPrimary:{lower:"diving suit bottom"}
 }
 
 ]>>
diff --git a/game/base-clothing/shop.twee b/game/base-clothing/shop.twee
index d6b59ae88b60a6ba15eca81fe96342af8779d3e4..65a33d82a2abbcb0493fddaea5baa3dd6eb0071e 100644
--- a/game/base-clothing/shop.twee
+++ b/game/base-clothing/shop.twee
@@ -22,7 +22,15 @@
 	<br><br>
 	You hear Gwylan shuffling somewhere in the gloom.
 	<br><br>
+	
+	<<warmth_description>>
+	<br><br>
 
+	<<if $christmas_gift_robin is undefined and $christmas is 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
+		<<link [[Find a gift for Robin (0:10)|Forest Christmas Robin]]>><<pass 10>><</link>>
+		<br>
+	<</if>>
+	
 	[[Look behind the dark screen|Forest Shop Outfit]]
 	<br>
 	[[Look in the antique wardrobe|Forest Shop Upper]]
@@ -51,6 +59,31 @@
 	<</if>>
 <</if>>
 
+:: Forest Christmas Robin [nobr]
+<<effects>>
+
+You search through an assortment of strange clothes, before finding a Christmas-themed outfit in Robin's size. There's a price tag: "£80".
+<br><br>
+
+<<if $money gte 8000>>
+	<<link [[Buy it|Forest Christmas Robin Buy]]>><<set $christmas_gift_robin to "christmas_unwrapped">><</link>>
+	<br>
+<</if>>
+<<link [[Next|Forest Shop]]>><</link>>
+<br>
+
+
+:: Forest Christmas Robin Buy [nobr]
+<<effects>>
+
+You hand Gwylan the cash. 
+<<if $christmas_wrap is undefined>>Now you just need wrapping paper. <span class="gold">You can buy some at the shopping centre.</span><<else>>You can wrap it in your room.<</if>>
+<br><br>
+
+<<link [[Next|Forest Shop]]>><</link>>
+<br>
+
+
 :: Forest Shop Outfit [nobr]
 
 <<set $outside to 0>><<set $location to "forest_shop">><<effects>>
diff --git a/game/base-clothing/storeActions.twee b/game/base-clothing/storeActions.twee
index 6a17cdb6d900d29af7d29ca337f11e4fd0223381..50e747aa8ce7b27735a2796cccc38034934b8964 100644
--- a/game/base-clothing/storeActions.twee
+++ b/game/base-clothing/storeActions.twee
@@ -329,6 +329,7 @@
 <<if _e is 6>><<set _active_clothes to "head">><</if>>
 <<if _e is 7>><<set _active_clothes to "face">><</if>>
 <<if _e is 8>><<set _active_clothes to "neck">><</if>>
-<<if _e is 9>><<set _active_clothes to "legs">><</if>>
-<<if _e is 10>><<set _active_clothes to "feet">><</if>>
+<<if _e is 9>><<set _active_clothes to "hands">><</if>>
+<<if _e is 10>><<set _active_clothes to "legs">><</if>>
+<<if _e is 11>><<set _active_clothes to "feet">><</if>>
 <</nobr>><</widget>>
\ No newline at end of file
diff --git a/game/base-clothing/wardrobes.twee b/game/base-clothing/wardrobes.twee
index 8833613cc92fa7da27f4ab173d59548f0aec6509..7304e6596fa9f06bfb35589a956b87b4e17d2dc5 100644
--- a/game/base-clothing/wardrobes.twee
+++ b/game/base-clothing/wardrobes.twee
@@ -251,6 +251,10 @@
 <<widget "wardrobe">><<nobr>>
 <<unset $tempDisable>>
 <<clotheson>> /*Fixes perma pulled aside clothes introduced by 0.2.3.0 bug.*/
+<<temperature>>
+
+<<warmth_description>>
+<br><br>
 <<if $upperwet gte 1 or $lowerwet gte 1 or $underlowerwet or $underupperwet gte 1>>
 	<<link [[Dry your clothes|$passage]]>><<set $wear to "dry">><<script>>state.display(state.active.title, null)<</script>><</link>>
 	<br>
@@ -555,6 +559,8 @@ Type: <label>Everyday <<radiobutton "$outfit_type" 0 checked>></label> | <label>
 
 			<<if _wornItem.gender is "m">><span class="lblue">For boys ♂.</span><<elseif _wornItem.gender is "f">><span class="pink">For girls ♀.</span><</if>>
 			<<print _wornItem.description>>
+			<br>
+			<<warmth _wornItem.warmth>>
 			<br><br>
 			<<set _temp_choice to $worn[_wardrobe_list]>>
 			<<shoptraits>>
@@ -621,6 +627,7 @@ Type: <label>Everyday <<radiobutton "$outfit_type" 0 checked>></label> | <label>
 	An error occured to 'widget "wardrobeList"', please report if you did not edit the save data manually in any way.
 <</if>>
 
+<<temperature>>
 <</nobr>><</widget>>
 
 <<widget "oldWardrobeListDisplay">><<nobr>>
@@ -953,6 +960,21 @@ __<<print _wardrobe_list[0].toUpperCase() + _wardrobe_list.substring(1)>>__ <i>$
 <<unset $randomWear>>
 <</nobr>><</widget>>
 
+<<widget "warmth_description">><<nobr>>
+<<switch $body_temperature_outside>>
+<<case "hot">>
+	<span class="red">You'll be far too hot outside.</span>
+<<case "warm">>
+	<span class="purple">You'll be too warm outside.</span>
+<<case "cold">>
+	<span class="red">You'll be cold outside.</span>
+<<case "chilly">>
+	<span class="purple">You'll be a bit chilly outside.</span>
+<<default>>
+	<span class="green">You'll be a comfortable temperature outside.</span>
+<</switch>>
+<</nobr>><</widget>>
+
 :: Wardrobe [nobr]
 <<effects>>
 <<set $wardrobe_location to "wardrobe">>
diff --git a/game/base-combat/beast.twee b/game/base-combat/beast.twee
index 53e3c561a083ca3409af4d8fd4f5994bc1b94f68..98066c5dd33bdb954549eb738d29ea85328ee092 100644
--- a/game/base-combat/beast.twee
+++ b/game/base-combat/beast.twee
@@ -183,7 +183,7 @@
 		<<set $rng to random(1, 100)>>
 		<<if $worn.under_lower.vagina_exposed is 1 and $worn.genitals.type.includes("chastity")>>
 			<<if $NPCList[_n].penissize gte 5>>
-				<<bHe>> thrusts <<his>> $NPCList[_n].penisdesc against your $worn.genitals.name, desperate to breed the <<pussy>> beneath. <<bHe>> growls in pain, but <span class="pink">the device feels looser after each push.</span>
+				<<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against your $worn.genitals.name, desperate to breed the <<pussy>> beneath. <<bHe>> growls in pain, but <span class="pink">the device feels looser after each push.</span>
 				<<sex 10>><<set $worn.genitals.integrity -= 240>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>>
 			<<else>>
 				<<bHe>> thrusts against your $worn.genitals.name, desperate to breed the <<pussy>> beneath. It hurts itself against the hard material and withdraws, growling.
@@ -191,7 +191,7 @@
 			<</if>>
 		<<elseif $worn.under_lower.vagina_exposed is 0>>
 			<<if $NPCList[_n].penissize gte 5>>
-				<<bHe>> thrusts <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.under_lower.name, <span class="purple">tearing the fabric.</span>
+				<<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.under_lower.name, <span class="purple">tearing the fabric.</span>
 				<<sex 10>><<set $worn.under_lower.integrity -= 40>>
 			<<else>>
 				<<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.under_lower.name.
@@ -713,10 +713,45 @@
 		<</if>>
 	<</if>>
 <</if>>
-
-<<if $NPCList[_n].vagina is "vagina">>
+<<set $rng to random(1, 100)>>
+<<if $NPCList[_n].vagina is "vaginaentrance">>
+	<<if $rng gte 51>>
+		<span class="purple"><<bHe>> kisses your <<pussy>> with <<bhis>>, hinting at what's to come.</span>
+		<<sex 10>><<set $NPCList[_n].vagina to "vaginaimminent">><<set $vaginastate to "othervaginaimminent">>
+	<<else>>
+		<<bHe>> hovers <<bhis>> pussy close to yours.
+		<<sex 5>>
+	<</if>>
+<<elseif $NPCList[_n].vagina is "vaginaimminent">>
+	<<bHe>> thrusts forward, <span class="pink">
+		<<if $enemyarousal gte (($enemyarousalmax / 10) * 7)>>
+			squelching
+		<<elseif $enemyarousal gte (($enemyarousalmax / 10) * 4)>>
+			smashing
+		<<else>>
+			pressing
+		<</if>>
+		<<bhis>> pussy against yours.</span>
+	<<sex 10>><<set $NPCList[_n].vagina to "vagina">><<set $vaginastate to "othervagina">>
+<<elseif $NPCList[_n].vagina is "vagina">>
 	<<if $rng gte 1>>
-		<<bHe>> kneads your pussies together.
+		<<if $enemyarousal gte $enemyarousalmax * 0.8>>
+			<<bHe>> slams <<bhis>> pussy into yours with a bestial fervour as <<bhe>> approaches orgasm.
+			<<if $vaginaWetness gte 45>>
+				<span class="purple">Your juices mingle.</span><<purity -1>>				
+			<</if>>
+		<<elseif $enemyarousal gte $enemyarousalmax * 0.6>>
+			<<bHe>> thrusts <<bhis>> pussy against yours with increasing fervour.
+			<<if $vaginaWetness gte 45>>
+				<span class="purple">Your juices mingle.</span><<purity -1>>				
+			<</if>>
+		<<elseif $enemyarousal gte $enemyarousalmax * 0.4>>
+			<<bHe>> smashes your pussies together.
+		<<elseif $enemyarousal gte $enemyarousalmax * 0.2>>
+			<<bHe>> thrusts <<bhis>> pussy against yours.
+		<<else>>
+			<<bHe>> kneads your pussies together.
+		<</if>>
 		<<sex 20>><<set $speechvaginavagina to 1>>
 	<<else>>
 		<span class="lblue"><<bHe>> moves <<bhis>> pussy away from yours.</span>
@@ -1362,8 +1397,8 @@
 				<span class="blue"><<bHe>> humps between your legs, gaining purchase on the tip of your <<penis>>.</span>
 				<<sex 5>><<bruise penis>><<violence 1>><<set $NPCList[_n].vagina to "penisentrance">><<set $penisuse to "othervagina">><<set $penisstate to "entrance">>
 			<<elseif $vaginaexist is 1 and $vaginause is 0 and ($penisexist is 0 or $penisuse is 0)>>
-				<<bHe>> humps between your legs, rubbing against your <<pussy>>.
-				<<sex 5>><<bruise vagina>><<violence 1>>
+				<span class="blue"><<bHe>> humps between your legs, brushing your <<pussy>> with <<bhis>> own.</span>
+				<<sex 5>><<bruise vagina>><<violence 1>><<set $NPCList[_n].vagina to "vaginaentrance">><<set $vaginause to "othervagina">><<set $vaginastate to "othervaginaentrance">>
 			<<else>>
 				<<bHe>> humps between your legs, rubbing <<bhis>> pussy against your <<genitals>>.
 				<<sex 3>>
@@ -1390,7 +1425,7 @@
 			<<neutral 3>>
 		<<elseif ($enemyanger + $rng) lte 75 and $position isnot "wall">>
 			<<if $worn.genitals.type.includes("chastity")>>
-				<<bHe>> desperately tries to force <<his>> tongue around your $worn.genitals.name.
+				<<bHe>> desperately tries to force <<bhis>> tongue around your $worn.genitals.name.
 				<br>
 				<<sex 3>>
 			<<elseif $penisexist is 1>>
diff --git a/game/base-combat/end.twee b/game/base-combat/end.twee
index fb8b340288d0227df7287051e96f055dd0665cb1..9af9e8660399dd8343961a41e5ac115af7b92511 100644
--- a/game/base-combat/end.twee
+++ b/game/base-combat/end.twee
@@ -493,72 +493,73 @@
 
 :: Widgets End Speech [widget]
 <<widget "manend">><<nobr>>
-<<set $speechpenispenetrated to 0>>
-<<set $speechvaginapenetrated to 0>>
-<<set $speechanuspenetrated to 0>>
-<<set $speechmouthpenetrated to 0>>
-<<set $speechotheranuspenetrated to 0>>
-<<set $speechvaginaimminent to 0>>
-<<set $speechpenisimminent to 0>>
-<<set $speechanusimminent to 0>>
-<<set $speechmouthimminent to 0>>
-<<set $speechotheranusimminent to 0>>
-<<set $speechvaginaentrance to 0>>
-<<set $speechanusentrance to 0>>
-<<set $speechmouthentrance to 0>>
-<<set $speechpenisentrance to 0>>
-<<set $speechotheranusentrance to 0>>
-<<set $speechvaginawithhold to 0>>
-<<set $speechanuswithhold to 0>>
-<<set $speechpeniswithhold to 0>>
-<<set $speechotheranuswithhold to 0>>
-<<set $speechvagina to 0>>
-<<set $speechpenis to 0>>
-<<set $speechanus to 0>>
-<<set $speechvaginamouth to 0>>
-<<set $speechvaginavagina to 0>>
-<<set $speechbeat to 0>>
-<<set $speechhit to 0>>
-
-<<set $speechheadbreasts to 0>>
-<<set $speechheadchest to 0>>
-<<set $speechheadnipple to 0>>
-<<set $speechheadsuckle to 0>>
-<<set $speechheadnippleclosed to 0>>
-<<set $speechheadsuckleclosed to 0>>
-
-<<set $speechfeet to 0>>
-<<set $speechthigh to 0>>
-<<set $speechcheeks to 0>>
-<<set $speechhandjobpenis to 0>>
-<<set $speechhandjobvagina to 0>>
-
-<<set $speechthroat to 0>>
-<<set $speechvaginafoot to 0>>
-<<set $speechpenisfoot to 0>>
-<<set $speechchastity to 0>>
-<<set $speechstruggle to 0>>
-<<set $speechstripstruggle to 0>>
-<<set $speechspank to 0>>
-<<set $speecharms to 0>>
-<<set $speechclit to 0>>
-<<set $speechglans to 0>>
-<<set $speechfutapenis to 0>>
-<<set $speechbottom to 0>>
-<<set $speechhair to 0>>
-<<set $speechchestrub to 0>>
-<<set $speechbreastrub to 0>>
-<<set $speechvaginaflaunt to 0>>
-<<set $speechvaginavirgin to 0>>
-<<set $speechanusvirgin to 0>>
-<<set $speechmouthvirgin to 0>>
-<<set $speechpenisvirgin to 0>>
-<<set $speechpenisbig to 0>>
-<<set $speechpenisescape to 0>>
-<<set $speechvaginaescape to 0>>
-<<set $speechanusescape to 0>>
-<<set $speechsteal to 0>>
-<<set $speechnamedrop to 0>>
+<<unset $speechpenispenetrated>>
+<<unset $speechvaginapenetrated>>
+<<unset $speechanuspenetrated>>
+<<unset $speechmouthpenetrated>>
+<<unset $speechotheranuspenetrated>>
+<<unset $speechvaginaimminent>>
+<<unset $speechpenisimminent>>
+<<unset $speechanusimminent>>
+<<unset $speechmouthimminent>>
+<<unset $speechotheranusimminent>>
+<<unset $speechvaginaentrance>>
+<<unset $speechanusentrance>>
+<<unset $speechmouthentrance>>
+<<unset $speechpenisentrance>>
+<<unset $speechotheranusentrance>>
+<<unset $speechvaginawithhold>>
+<<unset $speechanuswithhold>>
+<<unset $speechpeniswithhold>>
+<<unset $speechotheranuswithhold>>
+<<unset $speechvagina>>
+<<unset $speechpenis>>
+<<unset $speechanus>>
+<<unset $speechvaginamouth>>
+<<unset $speechvaginavagina>>
+<<unset $speechbeat>>
+<<unset $speechhit>>
+<<unset $speechtribentrance>>
+
+<<unset $speechheadbreasts>>
+<<unset $speechheadchest>>
+<<unset $speechheadnipple>>
+<<unset $speechheadsuckle>>
+<<unset $speechheadnippleclosed>>
+<<unset $speechheadsuckleclosed>>
+
+<<unset $speechfeet>>
+<<unset $speechthigh>>
+<<unset $speechcheeks>>
+<<unset $speechhandjobpenis>>
+<<unset $speechhandjobvagina>>
+
+<<unset $speechthroat>>
+<<unset $speechvaginafoot>>
+<<unset $speechpenisfoot>>
+<<unset $speechchastity>>
+<<unset $speechstruggle>>
+<<unset $speechstripstruggle>>
+<<unset $speechspank>>
+<<unset $speecharms>>
+<<unset $speechclit>>
+<<unset $speechglans>>
+<<unset $speechfutapenis>>
+<<unset $speechbottom>>
+<<unset $speechhair>>
+<<unset $speechchestrub>>
+<<unset $speechbreastrub>>
+<<unset $speechvaginaflaunt>>
+<<unset $speechvaginavirgin>>
+<<unset $speechanusvirgin>>
+<<unset $speechmouthvirgin>>
+<<unset $speechpenisvirgin>>
+<<unset $speechpenisbig>>
+<<unset $speechpenisescape>>
+<<unset $speechvaginaescape>>
+<<unset $speechanusescape>>
+<<unset $speechsteal>>
+<<unset $speechnamedrop>>
 
 <<set $npcspeechcycle += 1>>
 <<if $npcspeechcycle gte 7>>
@@ -569,69 +570,69 @@
 
 <<widget "turnend">><<nobr>>
 
-<<set $speechcum to 0>>
-<<set $speechorgasmrepeat to 0>>
-
-<<set $speechgenitals to 0>>
-<<set $speechbreasts to 0>>
-<<set $speechscream to 0>>
-<<set $speechapologise to 0>>
-<<set $speechplead to 0>>
-<<set $speechmoan to 0>>
-<<set $speechdemand to 0>>
-<<set $speechcoverface to 0>>
-<<set $speechcoverpenis to 0>>
-<<set $speechcovervagina to 0>>
-<<set $speechapologiseno to 0>>
-<<set $speechforgive to 0>>
-<<set $speechspray to 0>>
+<<unset $speechcum>>
+<<unset $speechorgasmrepeat>>
+
+<<unset $speechgenitals>>
+<<unset $speechbreasts>>
+<<unset $speechscream>>
+<<unset $speechapologise>>
+<<unset $speechplead>>
+<<unset $speechmoan>>
+<<unset $speechdemand>>
+<<unset $speechcoverface>>
+<<unset $speechcoverpenis>>
+<<unset $speechcovervagina>>
+<<unset $speechapologiseno>>
+<<unset $speechforgive>>
+<<unset $speechspray>>
 
 <<if $speechcrossdressangry is 2>>
-<<set $speechcrossdressangry to 1>>
+	<<set $speechcrossdressangry to 1>>
 <<elseif $speechcrossdressangry is 1>>
-<<set $speechcrossdressangry to 0>>
+	<<unset $speechcrossdressangry>>
 <</if>>
 
 <<if $speechcrossdressaroused is 2>>
-<<set $speechcrossdressaroused to 1>>
+	<<set $speechcrossdressaroused to 1>>
 <<elseif $speechcrossdressaroused is 1>>
-<<set $speechcrossdressaroused to 0>>
+	<<unset $speechcrossdressaroused>>
 <</if>>
 
 <<if $speechcrossdressshock is 2>>
-<<set $speechcrossdressshock to 1>>
+	<<set $speechcrossdressshock to 1>>
 <<elseif $speechcrossdressshock is 1>>
-<<set $speechcrossdressshock to 0>>
+	<<unset $speechcrossdressshock>>
 <</if>>
 
 <<if $speechcrossdressdisappointed is 2>>
-<<set $speechcrossdressdisappointed to 1>>
+	<<set $speechcrossdressdisappointed to 1>>
 <<elseif $speechcrossdressdisappointed is 1>>
-<<set $speechcrossdressdisappointed to 0>>
+	<<unset $speechcrossdressdisappointed>>
 <</if>>
 
 <<if $speechhermangry is 2>>
-<<set $speechhermangry to 1>>
+	<<set $speechhermangry to 1>>
 <<elseif $speechhermangry is 1>>
-<<set $speechhermangry to 0>>
+	<<unset $speechhermangry>>
 <</if>>
 
 <<if $speechhermaroused is 2>>
-<<set $speechhermaroused to 1>>
+	<<set $speechhermaroused to 1>>
 <<elseif $speechhermaroused is 1>>
-<<set $speechhermaroused to 0>>
+	<<unset $speechhermaroused>>
 <</if>>
 
 <<if $speechhermshock is 2>>
-<<set $speechhermshock to 1>>
+	<<set $speechhermshock to 1>>
 <<elseif $speechhermshock is 1>>
-<<set $speechhermshock to 0>>
+	<<unset $speechhermshock>>
 <</if>>
 
 <<if $speechhermdisappointed is 2>>
-<<set $speechhermdisappointed to 1>>
+	<<set $speechhermdisappointed to 1>>
 <<elseif $speechhermdisappointed is 1>>
-<<set $speechhermdisappointed to 0>>
+	<<unset $speechhermdisappointed>>
 <</if>>
 
 <</nobr>><</widget>>
diff --git a/game/base-combat/images.twee b/game/base-combat/images.twee
index 00dcfd53b065ad3f5b5327b34f5c0417747f6733..b21acee5f01fb5da312711a9556097fae161e506 100644
--- a/game/base-combat/images.twee
+++ b/game/base-combat/images.twee
@@ -66,7 +66,7 @@
 
 <div class="i256">
 
-<<if _swarmcreature is "fish">>
+<<if _swarmcreature is "fish" or _swarmcreature is "eels">>
 	<<if _swarmactive lte 0>>
 	<<elseif _swarmactive lte 1>>
 		<img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/fish/fishcount1.png">
diff --git a/game/base-combat/man-combat.twee b/game/base-combat/man-combat.twee
index bafa25b6a23f05d305eefe6b323084e372bbee61..5817be96affe28418ca61ecc2b4af69b4bc48624 100644
--- a/game/base-combat/man-combat.twee
+++ b/game/base-combat/man-combat.twee
@@ -2490,10 +2490,23 @@
 				<<bodypart_admire_chance back>>
 			<<elseif !$worn.upper.type.includes("naked") and $worn.upper.state isnot "chest" and $worn.upper.state_top is "chest">>
 				<<He>> gropes your <<breasts>> through your $worn.upper.name.
+				<<if $body_temperature is "chilly" or $body_temperature is "cold">>
+					Your buds stand erect and vulnerable in the cold.
+				<</if>>
+				<<neutral 2>><<playWithBreasts>>
+				<<bodypart_admire_chance breasts>>
+			<<elseif !$worn.under_upper.type.includes("naked") and $worn.under_upper.state isnot "chest" and $worn.under_upper.state_top is "chest">>
+				<<He>> gropes your <<breasts>> through your $worn.under_upper.name.
+				<<if $body_temperature is "chilly" or $body_temperature is "cold">>
+					Your buds stand erect and vulnerable in the cold.
+				<</if>>
 				<<neutral 2>><<playWithBreasts>>
 				<<bodypart_admire_chance breasts>>
 			<<else>>
 				<<He>> gropes your exposed <<breasts>>.
+				<<if $body_temperature is "chilly" or $body_temperature is "cold">>
+					Your buds stand erect and vulnerable in the cold.
+				<</if>>
 				<<neutral 4>><<playWithBreasts>>
 				<<bodypart_admire_chance breasts>>
 			<</if>>
@@ -3800,9 +3813,46 @@
 			<</if>>
 		<</if>>
 	<</if>>
-	<<if $NPCList[_n].vagina is "vagina">>
+	<<set $rng to random(1, 100)>>
+	<<if $NPCList[_n].vagina is "vaginaentrance">>
+		<<if $rng gte 51>>
+			<<He>> kisses your <<pussy>> with <<his>> own, <span class="purple">teasing what's to come.</span>
+			<<set $vaginastate to "othervaginaimminent">><<set $NPCList[_n].vagina to "vaginaimminent">><<sex 10>>
+		<<else>>
+			<<He>> hovers <<hhis>> pussy hovers close to yours.
+			<<neutral 1>>
+		<</if>>
+		<<set $speechtribentrance to 1>>
+	<<elseif $NPCList[_n].vagina is "vaginaimminent">>
+		<<He>> thrusts forward, <span class="pink">
+		<<if $enemyarousal gte (($enemyarousalmax / 10) * 7)>>
+			squelching
+		<<elseif $enemyarousal gte (($enemyarousalmax / 10) * 4)>>
+			smashing
+		<<else>>
+			pressing
+		<</if>>
+		<<his>> pussy against yours.</span>
+		<<set $vaginastate to "othervagina">><<set $NPCList[_n].vagina to "vagina">><<sex 20>><<set $speechvaginavagina to 1>>
+	<<elseif $NPCList[_n].vagina is "vagina">>
 		<<if $rng gte 1>>
-			<<He>> kneads your pussies together.
+			<<if $enemyarousal gte $enemyarousalmax * 0.8>>
+				<<He>> thrusts <<his>> hips, pounding your <<pussy>> against <<his>> with a violent intensity.
+				<<if $vaginaWetness gte 45>>
+					<span class="purple">Your juices mingle.</span><<purity -1>>
+				<</if>>
+			<<elseif $enemyarousal gte $enemyarousalmax * 0.6>>
+				<<He>> thrusts <<his>> hips, smashing <<his>> pussy against yours.
+				<<if $vaginaWetness gte 45>>
+					<span class="purple">Your juices mingle.</span><<purity -1>>
+				<</if>>
+			<<elseif $enemyarousal gte $enemyarousalmax * 0.4>>
+				<<He>> thrusts <<his>> hips, rubbing and kneading your pussy with <<his>> own.
+			<<elseif $enemyarousal gte $enemyarousalmax * 0.2>>
+				<<He>> rubs and needs your <<pussy>> with <<his>> own.
+			<<else>>
+				<<He>> kneads and kisses your <<pussy>> with <<his>> own.
+			<</if>>
 			<<sex 20>><<set $speechvaginavagina to 1>>
 		<<else>>
 			<span class="lblue"><<He>> moves <<his>> pussy away from yours.</span>
@@ -4004,10 +4054,14 @@
 		<<elseif $enemyanger + $rng lte 80>>
 			<<He>> rubs <<his>> pussy against your thigh.
 			<<neutral 2>>
-		<<elseif $enemyanger + $rng lte 100 and $penisuse is 0 and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals">>
+		<<elseif $enemyanger + $rng lte 100 and $penisuse is 0 and $penisexist is 1 and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals">>
 			<<set $penisuse to "othervagina">><<set $NPCList[_n].vagina to "penisentrance">><<set $penisstate to "entrance">>
 			<span class="blue"><<He>> straddles you, <<his>> pussy hovering close to your <<penis>>.</span>
 			<<set $NPCList[_n].location.genitals = "genitals">>
+		<<elseif $enemyanger + $rng lte 100 and $vaginause is 0 and $vaginaexist is 1 and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals">>
+			<<set $vaginause to "othervagina">><<set $vaginastate to "othervaginaentrance">><<set $NPCList[_n].vagina to "vaginaentrance">><<sex 5>>
+			<span class="blue"><<He>> moves <<his>> pussy close to yours.</span>
+			<<set $NPCList[_n].location.genitals = "genitals">><<set $speechtribentrance to 1>>
 		<<elseif $enemyanger + $rng lte 120 and $penisuse is 0 and $penisexist is 1 and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and !$worn.genitals.type.includes("chastity")>>
 			<<set $penisuse to "othervagina">><<set $NPCList[_n].vagina to "penisimminent">><<set $penisstate to "imminent">>
 			<span class="purple"><<He>> wraps <<his>> legs around your pelvis, pressing <<his>> pussy against your <<genitals>>.</span>
diff --git a/game/base-combat/speech.twee b/game/base-combat/speech.twee
index 46b0d2fdd127db3d1d9eb04efedd81126d84221b..c67eb01d629181e0d765537a4f27c35d24d2b474 100644
--- a/game/base-combat/speech.twee
+++ b/game/base-combat/speech.twee
@@ -1984,9 +1984,9 @@
 		<</if>>
 	<<elseif $enemyanger lte 100>>
 		<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
-			<<He>> is lost in the moment. "Mmm, it feels so good!"
+			<<He>> is lost in the moment. "Our juices are mingling together."
 		<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
-			<<He>> speaks. "Our juices are mingling together."
+			<<He>> speaks. "Mmm, it feels so good!"
 		<<else>>
 			<<He>> speaks. "You don't want to disappoint me, do you? Rub harder."
 		<</if>>
@@ -2000,6 +2000,32 @@
 		<</if>>
 	<</if>>
 
+<<elseif $speechtribentrance is 1>>
+	<<if $enemyanger lte 20>>
+		<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
+			<<He>> is lost in the moment. "I can't take this. I need to feel your pussy."
+		<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
+			<<He>> speaks. "Your pussy will feel so good against mine."
+		<<else>>
+			<<He>> speaks. "Your pussy looks tasty."
+		<</if>>
+	<<elseif $enemyanger lte 100>>
+		<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
+			<<He>> is lost in the moment. "I need your pussy. Now."
+		<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
+			<<He>> speaks. "This will feel so good."
+		<<else>>
+			<<He>> speaks. "Do you feel the anticipation? You've never felt a pussy like mine."
+		<</if>>
+	<<else>>
+		<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
+			<<He>> is lost in the moment. "I can't take this anymore. I need your pussy, right now!"
+		<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
+			<<He>> speaks. "You act like you don't want this. I know how to change your tune."
+		<<else>>
+			<<He>> speaks. "Just you wait. My pussy will dominate you."
+		<</if>>
+	<</if>>
 <<elseif $speechbeat is 1>>
 	<<if $rng lte 10>>
 		<<He>> speaks. "That's the least you deserve, bitch!"
diff --git a/game/base-combat/tentacles/tentacle-images.twee b/game/base-combat/tentacles/tentacle-images.twee
index 7b680bb597b0cf5e7d131da1ebe4b8b12221031d..5a811c197ea0272ba0541f687b7fca3ce63d2dff 100644
--- a/game/base-combat/tentacles/tentacle-images.twee
+++ b/game/base-combat/tentacles/tentacle-images.twee
@@ -177,14 +177,14 @@
 <<if Object.keys($swarm.amount).length gt 0>>
 	<<if $swarm.amount.genital[0] gte 1>>
 		<<if $vaginaexist is 1 or $worn.genitals.name is "chastity belt">>
-			<<if _swarmcreature is "fish">>
+			<<if _swarmcreature is "fish" or _swarmcreature is "eels">>
 				<img @class="'layer-sexpenis anim-doggy-4f-'+_animspeed" src="img/sex/doggy/fish/fishvaginal.png">
 			<<else>>
 				<img @class="'layer-sexpenis anim-doggy-4f-'+_animspeed" src="img/sex/doggy/slime/slimevaginal.png">
 			<</if>>
 		<</if>>
 		<<if $penisexist is 1 and $worn.genitals.name isnot "chastity belt">>
-			<<if _swarmcreature is "fish">>
+			<<if _swarmcreature is "fish" or _swarmcreature is "eels">>
 				<img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/fish/fishpenile.png">
 			<<else>>
 				<img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/slime/slimepenile.png">
@@ -193,14 +193,14 @@
 	<</if>>
 	<<if $swarm.amount.genital[1] gte 1>>
 		<<if $vaginaexist is 1 or $worn.genitals.name is "chastity belt">>
-			<<if _swarmcreature is "fish">>
+			<<if _swarmcreature is "fish" or _swarmcreature is "eels">>
 				<img @class="'layer-sexpenis anim-doggy-4f-'+_animspeed" src="img/sex/doggy/fish/fishvaginal.png">
 			<<else>>
 				<img @class="'layer-sexpenis anim-doggy-4f-'+_animspeed" src="img/sex/doggy/slime/slimevaginal.png">
 			<</if>>
 		<</if>>
 		<<if $penisexist is 1 and $worn.genitals.name isnot "chastity belt">>
-			<<if _swarmcreature is "fish">>
+			<<if _swarmcreature is "fish" or _swarmcreature is "eels">>
 				<img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/fish/fishpenile.png">
 			<<else>>
 				<img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/slime/slimepenile.png">
@@ -208,7 +208,7 @@
 		<</if>>
 	<</if>>
 	<<if $swarm.amount.butt[1] gte 1>>
-		<<if _swarmcreature is "fish">>
+		<<if _swarmcreature is "fish" or _swarmcreature is "eels">>
 			<img @class="'layer-sexpenis anim-doggy-4f-'+_animspeed" src="img/sex/doggy/fish/fishanal.png">
 		<<else>>
 			<img @class="'layer-sexpenis anim-doggy-4f-'+_animspeed" src="img/sex/doggy/slime/slimeanal.png">
diff --git a/game/base-debug/debug.twee b/game/base-debug/debug.twee
index bcf683dd478df1a191831c1cd24af19206a90eea..7256580a7f57a889bcb7a7b76cbf71e499325475 100644
--- a/game/base-debug/debug.twee
+++ b/game/base-debug/debug.twee
@@ -649,7 +649,11 @@ These still require Fertilise
 <br>
 <<link [[Wolf Pack|Forest Wolf Cave]]>><<set $wolfpacktrust to 12>><</link>>
 <br>
-<<link [[Halloween|$passage]]>><<set $days to 47>><<set $monthday to 21>><<set $month to "october">><</link>>
+<<link [[Halloween|$passage]]>><<set $days to 47>><<set $monthday to 21>><<set $yeardays to 47>><<set $month to "october">><</link>>
+<br>
+<<link [[Full winter|$passage]]>><<set $days to 92>><<set $yeardays to 92>><<set $monthday to 1>><<set $month to "december">><</link>>
+<br>
+<<link [[Christmas|$passage]]>><<set $days to 110>><<set $yeardays to 110>><<set $monthday to 18>><<set $month to "december">><</link>>
 <br>
 <<link [[Test|$passage]]>><<set $month to "october">><</link>>
 <br>
diff --git a/game/base-system/caption.twee b/game/base-system/caption.twee
index 75bfa10a11bba5decd4f51527e5ab130d2176ce1..90c03ff667e33fbccd91eb8ea9597a90e29e1a01 100644
--- a/game/base-system/caption.twee
+++ b/game/base-system/caption.twee
@@ -19,7 +19,6 @@
 	<<combateffects>>
 	
 	
-
 	<<if $endeventerror isnot undefined>>
 		<<if $debugdisable is "f">>
 			<<if $images is 1>><img class="layer-sexmouth" src="img/ui/sym_awareness.png"><</if>><span class="red"><<print StartConfig.version>> Error: An NPC generated on the "$endeventerror" passage broke free. Please inform Vrelnir. <<if $cheatdisable is "f">>Disregard this if you've just used a cheat.<</if>></span>
@@ -110,6 +109,32 @@
 			<br>
 		<</if>>
 	<</if>>
+	
+	<<switch $body_temperature>>
+	<<case "hot">>
+		<span class="red">You are sweltering.</span>
+	<<case "warm">>
+		<span class="purple">You are warm and sweaty.</span>
+	<<case "chilly">>
+		<<if _water_warmth>>
+			<span class="purple">You're chilled by cold water.</span>
+		<<else>>
+			<span class="purple">You are chilly.</span>
+		<</if>>
+	<<case "cold">>
+		<<if _water_warmth>>
+			<span class="red">You shiver in freezing water.</span>
+		<<else>>
+			<span class="red">You shiver.</span>
+		<</if>>
+	<<default>>
+		<<if _water_warmth>>
+			<span class="green">The water feels warm.</span>
+		<<else>>
+			<span class="green">You are snug.</span>
+		<</if>>
+	<</switch>>
+	<br>
 
 	<<clamp>>
 
diff --git a/game/base-system/characteristics.twee b/game/base-system/characteristics.twee
index 439546196da84d7b78f91deac831577bbe6d542a..b9093276cdbbc2ead7c92884ef70fd36a0e899be 100644
--- a/game/base-system/characteristics.twee
+++ b/game/base-system/characteristics.twee
@@ -11,6 +11,8 @@ It has been $days days since the game started.
 	<br>
 <</if>>
 <<schoolterm>>
+<br>
+It is $season.
 <br><br>
 
 You are
@@ -21,6 +23,8 @@ You are
 		a fallen
 	<<elseif $demon gte 6>>
 		a demonic
+	<<else>>
+		a
 	<</if>>
 <<elseif $specialTransform is 1 and $physicalTransform is 0>>
 	<<if $angel gte 6>>
@@ -29,6 +33,8 @@ You are
 		a fallen angel
 	<<elseif $demon gte 6>>
 		a demon
+	<<else>> 
+		a
 	<</if>>
 <<elseif $specialTransform is 0 and $physicalTransform is 1>>
 	a
@@ -48,6 +54,8 @@ You are
 		<<else>>
 			cow
 		<</if>>
+	<<else>>
+		a
 	<</if>>
 <</if>>
 <<if $specialTransform is 0 and $physicalTransform is 0>>
diff --git a/game/base-system/effects.twee b/game/base-system/effects.twee
index b96b2f446fda17d22951092e4653f09e36c94763..be3cb2247eef6b7c34621b137a02b215018c089c 100644
--- a/game/base-system/effects.twee
+++ b/game/base-system/effects.twee
@@ -127,7 +127,7 @@
 <<if $wetintro gte 2>>
 	<<exposure>>
 	<<if $exhibitionism gte 55>>
-		You feel a lewd thrill as <<if !$worn.face.type.includes("blindfold")>>you look down and see<</if>> your clothes cling tightly to your body, completely transparent.
+		You feel a lewd thrill as <<if !$worn.face.type.includes("blindfold")>>you look down and see<</if>> your clothes cling tight to your body, completely transparent.
 	<<else>>
 		<<if !$worn.face.type.includes("blindfold")>>You look down in horror at<<else>>Horror takes over you as you feel<</if>> your clothes, which cling tight to your body and are completely transparent.
 	<</if>>
@@ -135,7 +135,7 @@
 	<br><br>
 <<elseif $wetintro gte 1>>
 	<<if $exhibitionism gte 35>>
-		You feel a lewd thrill as <<if !$worn.face.type.includes("blindfold")>>you look down and see<</if>> your clothes cling tightly to your body, giving a hint of transparency.
+		You feel a lewd thrill as <<if !$worn.face.type.includes("blindfold")>>you look down and see<</if>> your clothes cling tight to your body, giving a hint of transparency.
 	<<else>>
 		<<if !$worn.face.type.includes("blindfold")>>You look down anxiously at<<else>>You feel<</if>> your clothes, now clinging tightly to your body and giving a hint of transparency.
 	<</if>>
@@ -149,6 +149,7 @@
 
 <<effectstime>>
 <<effectswater>>
+<<temperature>>
 
 <<set $speechcycle += 1>>
 <<if $speechcycle gte 7>>
@@ -569,6 +570,59 @@
 <<set $menu to 0>>
 <</nobr>><</widget>>
 
+<<widget "temperature">><<nobr>>
+<<set $warmth to 0>>
+<<for _e to 0; _e lt $clothing_number; _e++>>
+	<<activeclothes>>
+	<<if $inwater is 1>>
+		<<if $worn[_active_clothes].warmth isnot undefined and $worn[_active_clothes].type.includes("diving")>>	
+			<<set $warmth += $worn[_active_clothes].warmth>>
+		<</if>>
+	<<else>>
+		<<if $worn[_active_clothes].warmth isnot undefined>>
+			<<if _active_clothes is "upper" and $worn.upper.warmth lte $upperwet or _active_clothes is "lower" and $worn.lower.warmth lte $lowerwet or _active_clothes is "under_upper" and $worn.under_upper.warmth lte $underupperwet or _active_clothes is "under_lower" and $worn.under_lower.warmth lte $underlowerwet>>
+				/*Do nothing*/
+			<<else>>
+				<<set $warmth += $worn[_active_clothes].warmth>>
+			<</if>>
+		<</if>>
+	<</if>>
+<</for>>
+
+
+<<if $inwater is 1>>
+	<<if $season is "winter" and $location isnot "sea" and $location isnot "beach" and $location isnot "underground">>
+		<<if $warmth gte 80>>
+			<<set $body_temperature_outside to "comfy">>
+		<<elseif $warmth gte 40>>
+			<<set $body_temperature_outside to "chilly">>
+		<<else>>
+			<<set $body_temperature_outside to "cold">>
+		<</if>>
+	<<else>>
+		<<set $body_temperature_outside to "comfy">>
+	<</if>>
+<<else>>
+	<<if $warmth gte (($chill * 1.2) + 120)>>
+		<<set $body_temperature_outside to "hot">>
+	<<elseif $warmth gte (($chill * 1.2) + 50)>>
+		<<set $body_temperature_outside to "warm">>
+	<<elseif $warmth lte ($chill - 70)>>
+		<<set $body_temperature_outside to "cold">>
+	<<elseif $warmth lte $chill>>
+		<<set $body_temperature_outside to "chilly">>
+	<<else>>
+		<<set $body_temperature_outside to "comfy">>
+	<</if>>
+<</if>>
+
+<<if $outside is 1 or _water_warmth isnot undefined>>
+	<<set $body_temperature to $body_temperature_outside>>
+<<else>>
+	<<set $body_temperature to "comfy">>
+<</if>>
+<</nobr>><</widget>>
+
 :: Widgets Compatibility [widget]
 
 <<widget "compatibility">><<nobr>>
diff --git a/game/base-system/feats.twee b/game/base-system/feats.twee
index e970d4fc79358606fa5c16b0c09970d807a7396a..ace12a5eebec381d5b71f22d9d2aef5632b53892 100644
--- a/game/base-system/feats.twee
+++ b/game/base-system/feats.twee
@@ -1367,6 +1367,22 @@
 			filter: ["All", "Discoveries"],
 			hint: "Hint: Win a snowball fight."
 		},
+		"Under the Ice":{
+			title: "Under the Ice",
+			desc: "Escaped the frozen lake.",
+			difficulty: 1,
+			series: "",
+			filter: ["All", "Discoveries"],
+			hint: "Hint: Break free."
+		},
+		"A Festive Home":{
+			title: "A Festive Home",
+			desc: "Gave gifts to the orphans.",
+			difficulty: 1,
+			series: "",
+			filter: ["All", "Discoveries"],
+			hint: "Hint: Bring wintry cheer to the orphans."
+		},
 		"Max Those Shots":{
 			title: "Max Those Shots",
 			desc: "Holding a lot of pepper spray.",
diff --git a/game/base-system/images.twee b/game/base-system/images.twee
index 958c9fda25ed0641c29395a22237df3dd9553aa2..b1f5b7fa88d439176313da6b458c132561a8f70e 100644
--- a/game/base-system/images.twee
+++ b/game/base-system/images.twee
@@ -629,6 +629,94 @@
 	<</if>>
 <</nobr>><</widget>>
 
+<<widget "alleyicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/alley.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "arcadeicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/arcade.gif">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "dancestudioicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/dancestudio.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "dorenflaticon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/dorenflat.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "maleicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/male.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "femaleicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/female.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "headdeskicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/headdesk.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "museumicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/museum.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "homeicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/orphanage.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "roadicon">><<nobr>>
+	<<if $images is 1>>
+		<<if $daystate is "night">>
+			<img id="icon" src="img/misc/icon/roadnight.png">
+		<<else>>
+			<img id="icon" src="img/misc/icon/roadday.png">
+		<</if>>
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "schoolicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/school.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "soupkitchenicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/soupkitchen.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "spaicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/spa.png">
+	<</if>>
+<</nobr>><</widget>>
+
+<<widget "stripclubicon">><<nobr>>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/stripclub.gif">
+	<</if>>
+<</nobr>><</widget>>
+
 <<widget "ind">><<nobr>>
 	<<if $images is 1>>
 		<img id="icon" src="img/misc/icon/indent.png">
diff --git a/game/base-system/journal.twee b/game/base-system/journal.twee
index cf864eb8aba1992ec536e1b5da595d33b6232bdf..db51238238952e699255461196f7e22e008e1871 100644
--- a/game/base-system/journal.twee
+++ b/game/base-system/journal.twee
@@ -94,6 +94,29 @@ __Journal__
 	<br>
 <</if>>
 
+<<if $christmas is 1>>
+	<<if $monthday is 25>>
+		<<if $hour lte 20>>
+			The orphans are celebrating Christmas.
+		<</if>>
+	<<else>>
+		The orphans will celebrate Christmas on the 25th as best they can.
+	<</if>>
+	<<if $christmas_gift is undefined>>
+		You can buy them gifts at the shopping centre.
+	<<elseif $christmas_gift is "clothes_unwrapped">>
+		You can wrap their gifts in your room at the orphanage.
+	<</if>>
+	<<if $christmas_gift_robin is undefined and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
+		You can buy Robin a gift at the shopping centre or forest shop.
+	<<elseif $christmas_gift_robin and $christmas_gift_robin_wrapped isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
+		You can wrap Robin's gift in your room.
+	<</if>>
+	<<if !$christmas_wrap>>
+		The shopping centre should sell wrapping paper.
+	<</if>>
+<</if>>
+
 <<if $temple_rank is "prospective">>
 	Jordan has offered you a place at the temple, but you must first pass the trial of purity.
 	<br>
diff --git a/game/base-system/stat-changes.twee b/game/base-system/stat-changes.twee
index f3afe1950b3d6e838fcaf1821e1324f5cb2b9351..d35840a697d67bbd0fd9d8e9afcc562d4c7e1037 100644
--- a/game/base-system/stat-changes.twee
+++ b/game/base-system/stat-changes.twee
@@ -144,25 +144,31 @@
 <</nobr>><</widget>>
 
 <<widget "stress">><<nobr>>
-	<<if $args[0]>>
-		<<if $args[0] gt 0>>
-			<<if $drunk gte 480>>
-				<<set $stress += ($args[0] * 10)>>
-			<<elseif $drunk gte 360>>
-				<<set $stress += ($args[0] * 15)>>
-			<<elseif $drunk gte 240>>
-				<<set $stress += ($args[0] * 20)>>
-			<<elseif $drunk gte 120>>
-				<<set $stress += ($args[0] * 25)>>
-			<<elseif $drunk gte 1>>
-				<<set $stress += ($args[0] * 30)>>
-			<<else>>
-				<<set $stress += ($args[0] * 40)>>
-			<</if>>
-		<<else>>
-			<<set $stress += ($args[0] * 80)>>
-		<</if>>
+<<if $drunk gte 480>>
+	<<set _stress_mod to 10>>
+<<elseif $drunk gte 360>>
+	<<set _stress_mod to 15>>
+<<elseif $drunk gte 240>>
+	<<set _stress_mod to 20>>
+<<elseif $drunk gte 120>>
+	<<set _stress_mod to 25>>
+<<elseif $drunk gte 1>>
+	<<set _stress_mod to 30>>
+<<else>>
+	<<set _stress_mod to 40>>
+<</if>>
+<<if $body_temperature is "cold">>
+	<<set _stress_mod *= 3.0>>
+<<elseif $body_temperature is "chilly">>
+	<<set _stress_mod *= 1.5>>
+<</if>>
+<<if $args[0]>>
+	<<if $args[0] gt 0>>
+		<<set $stress += ($args[0] * _stress_mod)>>
+	<<else>>
+		<<set $stress += ($args[0] * 80)>>
 	<</if>>
+<</if>>
 <</nobr>><</widget>>
 
 <<widget "arousal">><<nobr>>
@@ -229,13 +235,23 @@
 <</nobr>><</widget>>
 
 <<widget "tiredness">><<nobr>>
-	<<if $args[0]>>
+<<set _tiredness_mod to 1>>
+<<if $body_temperature is "hot">>
+	<<set _tiredness_mod += 2>>
+<<elseif $body_temperature is "warm">>
+	<<set _tiredness_mod += 0.5>>
+<</if>>
+<<if $args[0]>>
+	<<if $args[1] is "pass">>
+		<<set $tiredness += ($args[0] * _tiredness_mod)>>
+	<<else>>
 		<<if $args[0] gt 0>>
-			<<set $tiredness += ($args[0] * 15)>>
+			<<set $tiredness += ($args[0] * 15 * _tiredness_mod)>>
 		<<else>>
-			<<set $tiredness += ($args[0] * 20)>>
+			<<set $tiredness += ($args[0] * 20 * _tiredness_mod)>>
 		<</if>>
 	<</if>>
+<</if>>
 <</nobr>><</widget>>
 
 <<widget "pain">><<nobr>>
@@ -554,7 +570,7 @@
 
 <<widget "willpower">><<nobr>>
 	<<if $args[0]>>
-		<<set $willpower += $args[0]>>
+		<<set $willpower += ($args[0] * 2)>>
 	<</if>>
 	<<set $willpower = Math.clamp($willpower, 0, $willpowermax)>>
 <</nobr>><</widget>>
diff --git a/game/base-system/text.twee b/game/base-system/text.twee
index a24eba93cd84539265613a80e658155cdf1352b6..b0df255a2356e6559d5dc36b3538d0fe4deeaa85 100644
--- a/game/base-system/text.twee
+++ b/game/base-system/text.twee
@@ -955,6 +955,17 @@ $haircolour
 <</if>>
 <</nobr>><</widget>>
 
+<<widget "warmth">><<nobr>>
+<<if $args[0] gte 50>>
+	Warm and snug.
+<<elseif $args[0] gte 25>>
+	Should help keep the chill off.
+<<else>>
+	Light and cool.
+<</if>>
+(Warmth rating: $args[0])
+<</nobr>><</widget>>
+
 <<widget "strokes">><<nobr>>
 
 <<if $enemyanger gte ($enemyangermax / 5) * 4 and $enemyarousal gte ($enemyarousalmax / 5) * 4>>savagely toys with
diff --git a/game/base-system/time.twee b/game/base-system/time.twee
index eadd5c80af6d5a55ed5ce4eb4f0effdf9d6ac2ea..a0b0a631c2818350a452aaed0fdef0e14c9ce99a 100644
--- a/game/base-system/time.twee
+++ b/game/base-system/time.twee
@@ -197,7 +197,7 @@
 	<<set $stall_rejected = Math.clamp($stall_rejected, 0, 100)>>
 <</if>>
 <<if $mason_pond is 3>>
-	<<if $weather isnot "rain">>
+	<<if $weather isnot "rain" and $weather isnot "snow">>
 		<<set $mason_pond_timer -= 1>>
 	<</if>>
 	<<if $mason_pond_timer lte 0>>
@@ -206,6 +206,12 @@
 	<</if>>
 <</if>>
 <<unset $spa_event>>
+<<if $lake_ice_broken gte 1>>
+	<<set $lake_ice_broken -= 1>>
+<</if>>
+<<if $lake_ice_broken lte 0>>
+	<<unset $lake_ice_broken>>
+<</if>>
 
 <<set $masochism *= 0.985>>
 <<if $masochism_level is 0>>
@@ -456,6 +462,21 @@
 	<<unset $halloween_kylar>>
 	<<unset $halloween_kylar_proposed>>
 <</if>>
+<<if $month is "december" and $monthday gte 18 and $monthday lte 25>>
+	<<set $christmas to 1>>
+<<else>>
+	<<unset $christmas>>
+	<<unset $christmas_event>>
+	<<unset $christmas_event_2>>
+	<<unset _christmas_event_robin>>
+	<<unset $christmas_gift>>
+	<<unset $christmas_gift_robin>>
+	<<unset $christmas_wrap>>
+	<<unset $christmas_gift_robin_wrapped>>
+	<<unset $christmas_robin_lewd>>
+	<<unset $christmas_robin_gift_received>>
+	<<unset $christmas_gift_robin_given>>
+<</if>>
 
 <<if $weekday isnot 1>>
 	<<if $robindebtevent gte 1>>
@@ -604,10 +625,6 @@
 
 <<if $schoolterm is 1>>
 	<<if $weekday is 2 or $weekday is 3 or $weekday is 4 or $weekday is 5 or $weekday is 6>>
-		<<set $science_star to 0>>
-		<<set $maths_star to 0>>
-		<<set $english_star to 0>>
-		<<set $history_star to 0>>
 		<<set $delinquency -= 1>>
 		<<if $NPCName[$NPCNameList.indexOf("Leighton")].love gte $npclovehigh>>
 			<<set $delinquency -= 1>>
@@ -633,6 +650,27 @@
 	<</if>>
 <</if>>
 
+<<if $science_star gte 1>>
+	<<set $science_star = Math.clamp($science_star, 0, 3)>>
+	<<scienceskill $science_star>>
+	<<set $science_star to 0>>
+<</if>>
+<<if $maths_star gte 1>>
+	<<set $maths_star = Math.clamp($maths_star, 0, 3)>>
+	<<mathsskill $maths_star>>
+	<<set $maths_star to 0>>
+<</if>>
+<<if $english_star gte 1>>
+	<<set $english_star = Math.clamp($english_star, 0, 3)>>
+	<<englishskill $english_star>>
+	<<set $english_star to 0>>
+<</if>>
+<<if $history_star gte 1>>
+	<<set $history_star = Math.clamp($history_star, 0, 3)>>
+	<<historyskill $history_star>>
+	<<set $history_star to 0>>
+<</if>>
+
 <<set $beauty += (100 - (($trauma / $traumamax) * 100))>>
 
 <<weather_select>>
@@ -890,6 +928,12 @@
 	<<clearNPC bartend>>
 <</if>>
 <<set $clothingShop.spotted to false>>
+<<if $lake_ice_broken gte 1>>
+	<<set $lake_ice_broken -= 1>>
+<</if>>
+<<if $lake_ice_broken lte 0>>
+	<<unset $lake_ice_broken>>
+<</if>>
 <</nobr>><</widget>>
 
 <<widget "hour">><<nobr>>
@@ -934,9 +978,40 @@
 	<<set $wolfevent to 1>>
 <</if>>
 
+<<temperature_hour>>
+
 <<set $home_gone += 1>>
 <</nobr>><</widget>>
 
+<<widget "temperature_hour">><<nobr>>
+<<set $chill to $chill_day>>
+<<if $hour gte 21 or $hour lte 5>>
+	<<if $weather is "clear">>
+		<<set $chill += 50>>
+	<<else>>
+		<<set $chill += 30>>
+	<</if>>
+<<elseif $hour gte 18>>
+	<<if $weather is "clear">>
+		<<set $chill -= 5>>
+	<<else>>
+		<<set $chill += 15>>
+	<</if>>
+<<elseif $hour gte 9>>
+	<<if $weather is "clear">>
+		<<set $chill -= 10>>
+	<<else>>
+		<<set $chill += 10>>
+	<</if>>
+<<else>>
+	<<if $weather is "clear">>
+		<<set $chill += 20>>
+	<<else>>
+		<<set $chill += 0>>
+	<</if>>
+<</if>>
+<</nobr>><</widget>>
+
 <<widget "advancetohour">><<nobr>>
 <<set _min to $time - ($hour * 60)>>
 <<pass _min>>
@@ -972,10 +1047,12 @@
 	<<set $effectsmessage to 1>><<set $history_down_message to 1>>
 	<<school_skill_down history>>
 <</if>>
-<<set $science_exam -= 7>>
-<<set $maths_exam -= 7>>
-<<set $english_exam -= 7>>
-<<set $history_exam -= 7>>
+<<if $schoolterm is 1>>
+	<<set $science_exam -= 7>>
+	<<set $maths_exam -= 7>>
+	<<set $english_exam -= 7>>
+	<<set $history_exam -= 7>>
+<</if>>
 <<exam_clamp_all>>
 
 <<exam_difficulty>>
diff --git a/game/base-system/tips.twee b/game/base-system/tips.twee
index a86aacf6a4e56587172380fff880375ed5d1ddd6..e12e6303ac6eb9502d675b58171863fc6567c346 100644
--- a/game/base-system/tips.twee
+++ b/game/base-system/tips.twee
@@ -1,16 +1,8 @@
 :: Widgets Tips [widget]
 
 <<widget "tips">><<nobr>>
-<<set _maxTipCount = 127>>
-<<if $args[0] is undefined>>
-	<<tipsList `random(0,_maxTipCount)`>>
-	<<unset _maxTipCount>>
-<</if>>
-<<unset $tipcount>>
-<</nobr>><</widget>>
-
-<<widget "tipsList">><<nobr>>
-<<switch $args[0]>>
+<<set $tipcount = random(0,132)>>
+<<switch $tipcount>>
 <<case 0>>
 	Arousal increases during lewd acts, and decreases over time or when you orgasm.
 <<case 1>>
@@ -266,7 +258,17 @@
 <<case 126>>
 	The dancing skill also improves physical coordination.
 <<case 127>>
-	Having trouble with game performance or images not loading correctly, try disabling some images or animations in the settings.
+	Remember to wrap up warm agaisnt the cold.
+<<case 128>>
+	The temperature drops at night.
+<<case 129>>
+	Wear lighter clothes if you find yourself overheating.
+<<case 130>>
+	Clear skies mean warmer days and cooler nights.
+<<case 131>>
+	Aboveground freshwater becomes very cold during winter.
+<<case 132>>
+	If you're having trouble with game performance or images not loading correctly, try disabling some images or animations in the settings.
 <</switch>>
 <</nobr>><</widget>>
 
diff --git a/game/base-system/weather.twee b/game/base-system/weather.twee
index b857a96dc763b934bcde8a0239890eebf95143a6..d14ebdc8913131d67b777c2c68de8e2a3e3b7fa2 100644
--- a/game/base-system/weather.twee
+++ b/game/base-system/weather.twee
@@ -318,6 +318,22 @@
 <<set $weather to $nextWeather[0]>>
 <<run $nextWeather.deleteAt(0)>>
 
+<<set $chill_day to 0>>
+<<switch $season>>
+<<case "spring">>
+	<<set $chill_day += 50>>
+<<case "summer">>
+	
+<<case "autumn">>
+	<<set $chill_day += 60>>
+<<case "winter">>
+	<<set $chill_day += 150>>
+<</switch>>
+<<if $weather is "snow">>
+	<<set $chill_day += 50>>
+<</if>>
+<<set $chill to $chill_day>>
+
 <</nobr>><</widget>>
 
 
diff --git a/game/base-system/widgets.twee b/game/base-system/widgets.twee
index 06d555b3f3541b7c4179f2475506f8e2f55d54f8..885e4882067237fb9cf0c223c30da99ef06f048b 100644
--- a/game/base-system/widgets.twee
+++ b/game/base-system/widgets.twee
@@ -48,26 +48,81 @@
 <<widget "wateraction">><<nobr>>
 	<<if $swimmingskill lt 100>>
 		<<set $seconds += 18>><<set $oxygen -= 180>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 18>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<elseif $swimmingskill lt 200>>
 		<<set $seconds += 15>><<set $oxygen -= 150>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 15>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<elseif $swimmingskill lt 300>>
 		<<set $seconds += 12>><<set $oxygen -= 120>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 12>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<elseif $swimmingskill lt 400>>
 		<<set $seconds += 10>><<set $oxygen -= 100>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 10>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<elseif $swimmingskill lt 500>>
 		<<set $seconds += 8>><<set $oxygen -= 80>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 8>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<elseif $swimmingskill lt 600>>
 		<<set $seconds += 8>><<set $oxygen -= 80>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 8>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<elseif $swimmingskill lt 700>>
 		<<set $seconds += 7>><<set $oxygen -= 70>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 7>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<elseif $swimmingskill lt 800>>
 		<<set $seconds += 7>><<set $oxygen -= 70>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 7>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<elseif $swimmingskill lt 900>>
 		<<set $seconds += 6>><<set $oxygen -= 60>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 6>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<elseif $swimmingskill lt 1000>>
 		<<set $seconds += 6>><<set $oxygen -= 60>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 6>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<<else>>
 		<<set $seconds += 5>><<set $oxygen -= 50>>
+		<<if $lake_ice_broken gte 1>>
+			<<if random(1, 120) lte 5>>
+				<<unset $lake_ice_broken>>
+			<</if>>
+		<</if>>
 	<</if>>
 <</nobr>><</widget>>
 
@@ -200,12 +255,18 @@
 			<<set $stress -= $pass>>
 		<</if>>
 	<</if>>
+	<<if $body_temperature is "cold">>
+		<<set $stress += ($pass * 2)>>
+	<<elseif $body_temperature is "chilly">>
+		<<set $stress += $pass>>
+	<</if>>
+	
 	<<if $hallucinogen gt 0>>
 		<<set $hallucinogen -= $pass>>
 	<</if>>
 	<<if $drunk gt 0>>
+		<<tiredness `($pass * ($drunk / 200))` pass>>
 		<<set $drunk -= $pass>>
-		<<set $tiredness += ($pass * ($drunk / 200))>>
 	<</if>>
 	<<if $drugged gt 0>>
 		<<set $drugged -= $pass>>
@@ -216,7 +277,7 @@
 	<<if $pass gt 1200>>
 		<<set $tiredness to 0>>
 	<<else>>
-		<<set $tiredness += $pass>>
+		<<tiredness $pass pass>>
 	<</if>>
 	<<set $time += $pass>><<set $minute += $pass>>
 	<<if $backgroundTraits.includes("lustful")>>
@@ -549,25 +610,24 @@
 <<widget "scienceskill">><<nobr>>
 <<switch $sciencetrait>>
 <<case 4>>
-	<<set _skill_mod to 0.1>>
+	<<set _skill_mod to 0.3>>
 <<case 3>>
-	<<set _skill_mod to 0.1>>
+	<<set _skill_mod to 0.3>>
 <<case 2>>
-	<<set _skill_mod to 0.2>>
+	<<set _skill_mod to 0.6>>
 <<case 1>>
-	<<set _skill_mod to 0.4>>
+	<<set _skill_mod to 1.2>>
 <<default>>
-	<<set _skill_mod to 0.8>>
+	<<set _skill_mod to 2.4>>
 <</switch>>
 <<if $science_star lt 3>>
-	<<set _skill_mod *= 4>>
 	<<set $science_star += 1>>
 <</if>>
 <<if $worn.face.type.includes("glasses")>>
-	<<set _skill_mod += 1>>
+	<<set _skill_mod *= 1.2>>
 <</if>>
 <<if $exposed gte 1>>
-	<<set _skill_mod += 1>>
+	<<set _skill_mod *= 1.2>>
 <</if>>
 <<if $args[0]>>
 	<<set $science_exam += ($args[0] * _skill_mod)>>
@@ -580,25 +640,24 @@
 <<widget "mathsskill">><<nobr>>
 <<switch $mathstrait>>
 <<case 4>>
-	<<set _skill_mod to 0.1>>
+	<<set _skill_mod to 0.3>>
 <<case 3>>
-	<<set _skill_mod to 0.1>>
+	<<set _skill_mod to 0.3>>
 <<case 2>>
-	<<set _skill_mod to 0.2>>
+	<<set _skill_mod to 0.6>>
 <<case 1>>
-	<<set _skill_mod to 0.4>>
+	<<set _skill_mod to 1.2>>
 <<default>>
-	<<set _skill_mod to 0.8>>
+	<<set _skill_mod to 2.4>>
 <</switch>>
 <<if $maths_star lt 3>>
-	<<set _skill_mod *= 4>>
 	<<set $maths_star += 1>>
 <</if>>
 <<if $worn.face.type.includes("glasses")>>
-	<<set _skill_mod += 1>>
+	<<set _skill_mod *= 1.2>>
 <</if>>
 <<if $exposed gte 1>>
-	<<set _skill_mod += 1>>
+	<<set _skill_mod *= 1.2>>
 <</if>>
 <<if $args[0]>>
 	<<set $maths_exam += ($args[0] * _skill_mod)>>
@@ -611,25 +670,24 @@
 <<widget "englishskill">><<nobr>>
 <<switch $englishtrait>>
 <<case 4>>
-	<<set _skill_mod to 0.1>>
+	<<set _skill_mod to 0.3>>
 <<case 3>>
-	<<set _skill_mod to 0.1>>
+	<<set _skill_mod to 0.3>>
 <<case 2>>
-	<<set _skill_mod to 0.2>>
+	<<set _skill_mod to 0.6>>
 <<case 1>>
-	<<set _skill_mod to 0.4>>
+	<<set _skill_mod to 1.2>>
 <<default>>
-	<<set _skill_mod to 0.8>>
+	<<set _skill_mod to 2.4>>
 <</switch>>
 <<if $english_star lt 3>>
-	<<set _skill_mod *= 4>>
 	<<set $english_star += 1>>
 <</if>>
 <<if $worn.face.type.includes("glasses")>>
-	<<set _skill_mod += 1>>
+	<<set _skill_mod *= 1.2>>
 <</if>>
 <<if $exposed gte 1>>
-	<<set _skill_mod += 1>>
+	<<set _skill_mod *= 1.2>>
 <</if>>
 <<if $args[0]>>
 	<<set $english_exam += ($args[0] * _skill_mod)>>
@@ -642,25 +700,24 @@
 <<widget "historyskill">><<nobr>>
 <<switch $historytrait>>
 <<case 4>>
-	<<set _skill_mod to 0.1>>
+	<<set _skill_mod to 0.3>>
 <<case 3>>
-	<<set _skill_mod to 0.1>>
+	<<set _skill_mod to 0.3>>
 <<case 2>>
-	<<set _skill_mod to 0.2>>
+	<<set _skill_mod to 0.6>>
 <<case 1>>
-	<<set _skill_mod to 0.4>>
+	<<set _skill_mod to 1.2>>
 <<default>>
-	<<set _skill_mod to 0.8>>
+	<<set _skill_mod to 2.4>>
 <</switch>>
 <<if $history_star lt 3>>
-	<<set _skill_mod *= 4>>
 	<<set $history_star += 1>>
 <</if>>
 <<if $worn.face.type.includes("glasses")>>
-	<<set _skill_mod += 1>>
+	<<set _skill_mod *= 1.2>>
 <</if>>
 <<if $exposed gte 1>>
-	<<set _skill_mod += 1>>
+	<<set _skill_mod *= 1.2>>
 <</if>>
 <<if $args[0]>>
 	<<set $history_exam += ($args[0] * _skill_mod)>>
@@ -1426,6 +1483,11 @@
 <</nobr>><</widget>>
 
 <<widget "weatherdisplay">><<nobr>>
+<<if $season is "winter">>
+	<<set _weather_display to "winter">>
+<<else>>
+	<<set _weather_display to "normal">>
+<</if>>
 <<if $images is 1>>
 	<<if $daystate is "day">>
 		<<if $location is "tentworld">>
@@ -1434,99 +1496,109 @@
 		<img id="daystate" src="img/misc/day.png">
 		<</if>>
 		<<if $location is "tentworld">>
-<img id="weather" src="img/misc/tentskyday.png">
+		<img id="weather" src="img/misc/tentskyday.png">
 		<<elseif $weather is "clear">>
-<img id="weather" src="img/misc/clearday.png">
+		<img id="weather" src="img/misc/clearday.png">
 		<<elseif $weather is "overcast">>
-<img id="weather" src="img/misc/overcastday.png">
+		<img id="weather" @src="'img/misc/' + _weather_display + '/overcastday.png'">
 		<<elseif $weather is "rain">>
-<img id="weather" src="img/misc/rainday.gif">
+		<img id="weather" src="img/misc/rainday.gif">
+		<<elseif $weather is "snow">>
+		<img id="weather" src="img/misc/winter/snowday.gif">
 		<</if>>
 		<<switch $location>>
 		<<case beach>>
-		<img id="location" src="img/misc/beachday.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/beachday.gif'">
 		<<case sea>>
-		<img id="location" src="img/misc/ocean_day.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/ocean_day.gif'">
 		<<case home>>
-		<img id="location" src="img/misc/homeday.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/homeday.gif'">
 		<<case town>>
-		<img id="location" src="img/misc/town_day.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/town_day.gif'">
 		<<case docks>>
-		<img id="location" src="img/misc/docks_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/docks_day.png'">
 		<<case pub>>
-		<img id="location" src="img/misc/pubday.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/pubday.png'">
 		<<case forest>>
-		<img id="location" src="img/misc/forestday.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/forestday.gif'">
 		<<case lake>>
-		<img id="location" src="img/misc/lakeday.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/lakeday.gif'">
 		<<case asylum>>
 			<<if $hallucinations gte 1>>
-			<img id="location" src="img/misc/asylumdayvfast.gif">
+			<img id="location" @src="'img/misc/' + _weather_display + '/asylumdayvfast.gif'">
 			<<else>>
-			<img id="location" src="img/misc/asylumdayslow.gif">
+			<img id="location" @src="'img/misc/' + _weather_display + '/asylumdayslow.gif'">
 			<</if>>
 		<<case tentworld>>
-		<img id="location" src="img/misc/tentacles_day.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/tentacles_day.gif'">
 		<<case underground>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case sewers>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case school>>
-		<img id="location" src="img/misc/schoolday.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/schoolday.png'">
 		<<case cabin>>
-		<img id="location" src="img/misc/cabinday.gif">
+			<<if $season is "winter">>
+				<img id="location" @src="'img/misc/' + _weather_display + '/cabinday.png'">
+			<<else>>
+				<img id="location" @src="'img/misc/' + _weather_display + '/cabinday.gif'">
+			<</if>>
 		<<case pool>>
-		<img id="location" src="img/misc/poolday.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/poolday.gif'">
 		<<case landfill>>
-		<img id="location" src="img/misc/landfillday.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/landfillday.gif'">
 		<<case temple>>
-		<img id="location" src="img/misc/templeday.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/templeday.png'">
 		<<case strip_club>>
-		<img id="location" src="img/misc/strip_club_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/strip_club_day.png'">
 		<<case shopping_centre>>
-		<img id="location" src="img/misc/shopping_centre_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/shopping_centre_day.png'">
 		<<case police_station>>
-		<img id="location" src="img/misc/police_station_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/police_station_day.png'">
 		<<case park>>
-		<img id="location" src="img/misc/park_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/park_day.png'">
 		<<case museum>>
-		<img id="location" src="img/misc/museum_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/museum_day.png'">
 		<<case hospital>>
-		<img id="location" src="img/misc/hospital_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/hospital_day.png'">
 		<<case dance_studio>>
-		<img id="location" src="img/misc/dance_studio_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/dance_studio_day.png'">
 		<<case compound>>
-		<img id="location" src="img/misc/compound_day.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/compound_day.gif">
 		<<case brothel>>
-		<img id="location" src="img/misc/brothel_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/brothel_day.png'">
 		<<case cafe>>
 			<<if $chef_state gte 9>>
-				<img id="location" src="img/misc/cafe_renovated_day.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_renovated_day.png'">
 			<<elseif $chef_state gte 7>>
-				<img id="location" src="img/misc/cafe_construction_day.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_construction_day.png'">
 			<<else>>
-				<img id="location" src="img/misc/cafe_day.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_day.png'">
 			<</if>>
 		<<case arcade>>
-		<img id="location" src="img/misc/arcade_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/arcade_day.png'">
 		<<case farm>>
-		<img id="location" src="img/misc/farm_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/farm_day.png'">
 		<<case wolf_cave>>
-		<img id="location" src="img/misc/wolf_cave_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/wolf_cave_day.png'">
 		<<case forest_shop>>
-		<img id="location" src="img/misc/forest_shop_day.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/forest_shop_day.png'">
 		<<case lake_ruin>>
-		<img id="location" src="img/misc/ruins_day.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/ruins_day.gif'">
 		<<case moor>>
-		<img id="location" src="img/misc/moor_day.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/moor_day.gif'">
 		<<case night_monster_lair>>
-		<img id="location" src="img/misc/night_monster_lair_day.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/night_monster_lair_day.gif'">
 		<<case alley>>
-		<img id="location" src="img/misc/alley_day.gif">
+			<<if $bus is "industrial">>
+				<img id="location" @src="'img/misc/' + _weather_display + '/indust_alley_day.gif'">
+			<<else>>
+				<img id="location" @src="'img/misc/' + _weather_display + '/alley_day.gif'">
+			<</if>>
 		<<case drain>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case spa>>
-		<img id="location" src="img/misc/spa_day.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/spa_day.gif'">
 		<</switch>>
 	<<elseif $daystate is "night">>
 		<<if $location is "tentworld">>
@@ -1537,111 +1609,129 @@
 		<img id="daystate" src="img/misc/night.png">
 		<</if>>
 		<<if $location is "tentworld">>
-<img id="weather" src="img/misc/tentskynight.png">
+		<img id="weather" src="img/misc/tentskynight.png">
 		<<elseif $weather is "clear">>
-<img id="weather" src="img/misc/clearnight.png">
+		<img id="weather" src="img/misc/clearnight.png">
 		<<elseif $weather is "overcast">>
-<img id="weather" src="img/misc/overcastnight.png">
+		<img id="weather" @src="'img/misc/' + _weather_display + '/overcastnight.png'">
 		<<elseif $weather is "rain">>
-<img id="weather" src="img/misc/rainnight.gif">
+		<img id="weather" src="img/misc/rainnight.gif">
+		<<elseif $weather is "snow">>
+		<img id="weather" src="img/misc/winter/snownight.gif">
 		<</if>>
 		<<switch $location>>
 		<<case beach>>
-		<img id="location" src="img/misc/beachnight.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/beachnight.gif'">
 		<<case sea>>
-		<img id="location" src="img/misc/ocean_night.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/ocean_night.gif'">
 		<<case home>>
-		<img id="location" src="img/misc/homenight.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/homenight.gif'">
 		<<case town>>
-		<img id="location" src="img/misc/town_night.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/town_night.gif'">
 		<<case docks>>
-		<img id="location" src="img/misc/docks_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/docks_night.png'">
 		<<case pub>>
-		<img id="location" src="img/misc/pubnight.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/pubnight.png'">
 		<<case forest>>
 			<<if $moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lte 6>>
-				<img id="location" src="img/misc/forestbloodmoon.gif">
+				<img id="location" @src="'img/misc/' + _weather_display + '/forestbloodmoon.gif'">
 			<<else>>
-				<img id="location" src="img/misc/forestnight.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/forestnight.png'">
 			<</if>>
 		<<case lake>>
 			<<if $moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lte 6>>
-				<img id="location" src="img/misc/lakebloodmoon.gif">
+				<img id="location" @src="'img/misc/' + _weather_display + '/lakebloodmoon.gif'">
 			<<else>>
-				<img id="location" src="img/misc/lakenight.gif">
+				<img id="location" @src="'img/misc/' + _weather_display + '/lakenight.gif'">
 			<</if>>
 		<<case asylum>>
 			<<if $hallucinations gte 1>>
-			<img id="location" src="img/misc/asylumnightvfast.gif">
+			<img id="location" @src="'img/misc/' + _weather_display + '/asylumnightvfast.gif'">
 			<<else>>
-			<img id="location" src="img/misc/asylumnightslow.gif">
+			<img id="location" @src="'img/misc/' + _weather_display + '/asylumnightslow.gif'">
 			<</if>>
 		<<case tentworld>>
-		<img id="location" src="img/misc/tentacles_night.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/tentacles_night.gif'">
 		<<case underground>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case sewers>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case school>>
-		<img id="location" src="img/misc/schoolnight.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/schoolnight.png'">
 		<<case cabin>>
-		<img id="location" src="img/misc/cabinnight.gif">
+			<<if $season is "winter">>
+				<img id="location" @src="'img/misc/' + _weather_display + '/cabinnight.png'">
+			<<else>>
+				<img id="location" @src="'img/misc/' + _weather_display + '/cabinnight.gif'">
+			<</if>>
 		<<case pool>>
-		<img id="location" src="img/misc/poolnight.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/poolnight.gif'">
 		<<case landfill>>
-		<img id="location" src="img/misc/landfillnight.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/landfillnight.gif'">
 		<<case temple>>
-		<img id="location" src="img/misc/templenight.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/templenight.png'">
 		<<case strip_club>>
-		<img id="location" src="img/misc/strip_club_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/strip_club_night.png'">
 		<<case shopping_centre>>
-		<img id="location" src="img/misc/shopping_centre_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/shopping_centre_night.png'">
 		<<case police_station>>
-		<img id="location" src="img/misc/police_station_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/police_station_night.png'">
 		<<case park>>
-		<img id="location" src="img/misc/park_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/park_night.png'">
 		<<case museum>>
-		<img id="location" src="img/misc/museum_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/museum_night.png'">
 		<<case hospital>>
-		<img id="location" src="img/misc/hospital_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/hospital_night.png'">
 		<<case dance_studio>>
-		<img id="location" src="img/misc/dance_studio_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/dance_studio_night.png'">
 		<<case compound>>
-		<img id="location" src="img/misc/compound_night.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/compound_night.gif'">
 		<<case brothel>>
-		<img id="location" src="img/misc/brothel_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/brothel_night.png'">
 		<<case cafe>>
 			<<if $chef_state gte 9>>
-				<img id="location" src="img/misc/cafe_renovated_night.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_renovated_night.png'">
 			<<elseif $chef_state gte 7>>
-				<img id="location" src="img/misc/cafe_construction_night.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_construction_night.png'">
 			<<else>>
-				<img id="location" src="img/misc/cafe_night.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_night.png'">
 			<</if>>
 		<<case arcade>>
-		<img id="location" src="img/misc/arcade_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/arcade_night.png'">
 		<<case farm>>
-		<img id="location" src="img/misc/farm_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/farm_night.png'">
 		<<case wolf_cave>>
-		<img id="location" src="img/misc/wolf_cave_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/wolf_cave_night.png'">
 		<<case forest_shop>>
-		<img id="location" src="img/misc/forest_shop_night.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/forest_shop_night.png'">
 		<<case lake_ruin>>
 			<<if $moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lte 6>>
-				<img id="location" src="img/misc/ruins_blood_moon.gif">
+				<img id="location" @src="'img/misc/' + _weather_display + '/ruins_blood_moon.gif'">
 			<<else>>
-				<img id="location" src="img/misc/ruins_night.gif">
+				<img id="location" @src="'img/misc/' + _weather_display + '/ruins_night.gif'">
 			<</if>>
 		<<case moor>>
-		<img id="location" src="img/misc/moor_night.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/moor_night.gif'">
 		<<case night_monster_lair>>
-		<img id="location" src="img/misc/night_monster_lair_night.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/night_monster_lair_night.gif'">
 		<<case alley>>
-		<img id="location" src="img/misc/alley_night.gif">
+			<<if $bus is "industrial">>
+				<<if $moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lte 6>>
+					<img id="location" @src="'img/misc/' + _weather_display + '/indust_alley_blood.gif'">
+				<<else>>
+					<img id="location" @src="'img/misc/' + _weather_display + '/indust_alley_night.gif'">
+				<</if>>
+			<<else>>
+				<<if $moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lte 6>>
+					<img id="location" @src="'img/misc/' + _weather_display + '/alley_blood.gif'">
+				<<else>>
+					<img id="location" @src="'img/misc/' + _weather_display + '/alley_night.gif'">
+				<</if>>
+			<</if>>
 		<<case drain>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case spa>>
-		<img id="location" src="img/misc/spa_night.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/spa_night.gif'">
 		<</switch>>
 	<<elseif $daystate is "dawn">>
 		<<if $location is "tentworld">>
@@ -1650,99 +1740,109 @@
 		<img id="daystate" src="img/misc/dawn.png">
 		<</if>>
 		<<if $location is "tentworld">>
-<img id="weather" src="img/misc/tentskydawn.png">
+		<img id="weather" src="img/misc/tentskydawn.png">
 		<<elseif $weather is "clear">>
-<img id="weather" src="img/misc/cleardawn.png">
+		<img id="weather" src="img/misc/cleardawn.png">
 		<<elseif $weather is "overcast">>
-<img id="weather" src="img/misc/overcastdawn.png">
+		<img id="weather" @src="'img/misc/' + _weather_display + '/overcastdawn.png'">
 		<<elseif $weather is "rain">>
-<img id="weather" src="img/misc/raindawn.gif">
+		<img id="weather" src="img/misc/raindawn.gif">
+		<<elseif $weather is "snow">>
+		<img id="weather" src="img/misc/winter/snowdawn.gif">
 		<</if>>
 		<<switch $location>>
 		<<case beach>>
-		<img id="location" src="img/misc/beachdawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/beachdawn.gif'">
 		<<case sea>>
-		<img id="location" src="img/misc/ocean_dawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/ocean_dawn.gif'">
 		<<case home>>
-		<img id="location" src="img/misc/homedawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/homedawn.gif'">
 		<<case town>>
-		<img id="location" src="img/misc/town_dawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/town_dawn.gif'">
 		<<case docks>>
-		<img id="location" src="img/misc/docks_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/docks_dawn.png'">
 		<<case pub>>
-		<img id="location" src="img/misc/pubdawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/pubdawn.png'">
 		<<case forest>>
-		<img id="location" src="img/misc/forestdawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/forestdawn.png'">
 		<<case lake>>
-		<img id="location" src="img/misc/lakedawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/lakedawn.gif'">
 		<<case asylum>>
 			<<if $hallucinations gte 1>>
-			<img id="location" src="img/misc/asylumdawnvfast.gif">
+			<img id="location" @src="'img/misc/' + _weather_display + '/asylumdawnvfast.gif'">
 			<<else>>
-			<img id="location" src="img/misc/asylumdawnslow.gif">
+			<img id="location" @src="'img/misc/' + _weather_display + '/asylumdawnslow.gif'">
 			<</if>>
 		<<case tentworld>>
-		<img id="location" src="img/misc/tentacles_dawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/tentacles_dawn.gif'">
 		<<case underground>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case sewers>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case school>>
-		<img id="location" src="img/misc/schooldawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/schooldawn.png'">
 		<<case cabin>>
-		<img id="location" src="img/misc/cabindawn.gif">
+			<<if $season is "winter">>
+				<img id="location" @src="'img/misc/' + _weather_display + '/cabindawn.png'">
+			<<else>>
+				<img id="location" @src="'img/misc/' + _weather_display + '/cabindawn.gif'">
+			<</if>>
 		<<case pool>>
-		<img id="location" src="img/misc/pooldawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/pooldawn.gif'">
 		<<case landfill>>
-		<img id="location" src="img/misc/landfilldawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/landfilldawn.gif'">
 		<<case temple>>
-		<img id="location" src="img/misc/templedawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/templedawn.png'">
 		<<case strip_club>>
-		<img id="location" src="img/misc/strip_club_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/strip_club_dawn.png'">
 		<<case shopping_centre>>
-		<img id="location" src="img/misc/shopping_centre_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/shopping_centre_dawn.png'">
 		<<case police_station>>
-		<img id="location" src="img/misc/police_station_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/police_station_dawn.png'">
 		<<case park>>
-		<img id="location" src="img/misc/park_dawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/park_dawn.gif'">
 		<<case museum>>
-		<img id="location" src="img/misc/museum_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/museum_dawn.png'">
 		<<case hospital>>
-		<img id="location" src="img/misc/hospital_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/hospital_dawn.png'">
 		<<case dance_studio>>
-		<img id="location" src="img/misc/dance_studio_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/dance_studio_dawn.png'">
 		<<case compound>>
-		<img id="location" src="img/misc/compound_dawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/compound_dawn.gif'">
 		<<case brothel>>
-		<img id="location" src="img/misc/brothel_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/brothel_dawn.png'">
 		<<case cafe>>
 			<<if $chef_state gte 9>>
-				<img id="location" src="img/misc/cafe_renovated_dawn.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_renovated_dawn.png'">
 			<<elseif $chef_state gte 7>>
-				<img id="location" src="img/misc/cafe_construction_dawn.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_construction_dawn.png'">
 			<<else>>
-				<img id="location" src="img/misc/cafe_dawn.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_dawn.png'">
 			<</if>>
 		<<case arcade>>
-		<img id="location" src="img/misc/arcade_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/arcade_dawn.png'">
 		<<case farm>>
-		<img id="location" src="img/misc/farm_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/farm_dawn.png'">
 		<<case wolf_cave>>
-		<img id="location" src="img/misc/wolf_cave_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/wolf_cave_dawn.png'">
 		<<case forest_shop>>
-		<img id="location" src="img/misc/forest_shop_dawn.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/forest_shop_dawn.png'">
 		<<case lake_ruin>>
-		<img id="location" src="img/misc/ruins_dawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/ruins_dawn.gif'">
 		<<case moor>>
-		<img id="location" src="img/misc/moor_dawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/moor_dawn.gif'">
 		<<case night_monster_lair>>
-		<img id="location" src="img/misc/night_monster_lair_dawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/night_monster_lair_dawn.gif'">
 		<<case alley>>
-		<img id="location" src="img/misc/alley_dawn.gif">
+			<<if $bus is "industrial">>
+				<img id="location" @src="'img/misc/' + _weather_display + '/indust_alley_dawn.gif'">
+			<<else>>
+				<img id="location" @src="'img/misc/' + _weather_display + '/alley_dawn.gif'">
+			<</if>>
 		<<case drain>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case spa>>
-		<img id="location" src="img/misc/spa_dawn.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/spa_dawn.gi'f">
 		<</switch>>
 	<<elseif $daystate is "dusk">>
 		<<if $location is "tentworld">>
@@ -1751,99 +1851,109 @@
 		<img id="daystate" src="img/misc/dusk.png">
 		<</if>>
 		<<if $location is "tentworld">>
-<img id="weather" src="img/misc/tentskydusk.png">
+		<img id="weather" src="img/misc/tentskydusk.png">
 		<<elseif $weather is "clear">>
-<img id="weather" src="img/misc/cleardusk.png">
+		<img id="weather" src="img/misc/cleardusk.png">
 		<<elseif $weather is "overcast">>
-<img id="weather" src="img/misc/overcastdusk.png">
+		<img id="weather" @src="'img/misc/' + _weather_display + '/overcastdusk.png'">
 		<<elseif $weather is "rain">>
-<img id="weather" src="img/misc/raindusk.gif">
+		<img id="weather" src="img/misc/raindusk.gif">
+		<<elseif $weather is "snow">>
+		<img id="weather" src="img/misc/winter/snowdusk.gif">
 		<</if>>
 		<<switch $location>>
 		<<case beach>>
-		<img id="location" src="img/misc/beachdusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/beachdusk.gif'">
 		<<case sea>>
-		<img id="location" src="img/misc/ocean_dusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/ocean_dusk.gif'">
 		<<case home>>
-		<img id="location" src="img/misc/homedusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/homedusk.gif'">
 		<<case town>>
-		<img id="location" src="img/misc/town_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/town_dusk.png'">
 		<<case docks>>
-		<img id="location" src="img/misc/docks_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/docks_dusk.png'">
 		<<case pub>>
-		<img id="location" src="img/misc/pubdusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/pubdusk.png'">
 		<<case forest>>
-		<img id="location" src="img/misc/forestdusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/forestdusk.gif'">
 		<<case lake>>
-		<img id="location" src="img/misc/lakedusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/lakedusk.gif'">
 		<<case asylum>>
 			<<if $hallucinations gte 1>>
-			<img id="location" src="img/misc/asylumduskvfast.gif">
+			<img id="location" @src="'img/misc/' + _weather_display + '/asylumduskvfast.gif'">
 			<<else>>
-			<img id="location" src="img/misc/asylumduskslow.gif">
+			<img id="location" @src="'img/misc/' + _weather_display + '/asylumduskslow.gif'">
 			<</if>>
 		<<case tentworld>>
-		<img id="location" src="img/misc/tentacles_dusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/tentacles_dusk.gif'">
 		<<case underground>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case sewers>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case school>>
-		<img id="location" src="img/misc/schooldusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/schooldusk.png'">
 		<<case cabin>>
-		<img id="location" src="img/misc/cabindusk.gif">
+			<<if $season is "winter">>
+				<img id="location" @src="'img/misc/' + _weather_display + '/cabindusk.png'">
+			<<else>>
+				<img id="location" @src="'img/misc/' + _weather_display + '/cabindusk.gif'">
+			<</if>>
 		<<case pool>>
-		<img id="location" src="img/misc/pooldusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/pooldusk.gif'">
 		<<case landfill>>
-		<img id="location" src="img/misc/landfilldusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/landfilldusk.gif'">
 		<<case temple>>
-		<img id="location" src="img/misc/templedusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/templedusk.png'">
 		<<case strip_club>>
-		<img id="location" src="img/misc/strip_club_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/strip_club_dusk.png'">
 		<<case shopping_centre>>
-		<img id="location" src="img/misc/shopping_centre_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/shopping_centre_dusk.png'">
 		<<case police_station>>
-		<img id="location" src="img/misc/police_station_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/police_station_dusk.png'">
 		<<case park>>
-		<img id="location" src="img/misc/park_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/park_dusk.png'">
 		<<case museum>>
-		<img id="location" src="img/misc/museum_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/museum_dusk.png'">
 		<<case hospital>>
-		<img id="location" src="img/misc/hospital_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/hospital_dusk.png'">
 		<<case dance_studio>>
-		<img id="location" src="img/misc/dance_studio_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/dance_studio_dusk.png'">
 		<<case compound>>
-		<img id="location" src="img/misc/compound_dusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/compound_dusk.gif'">
 		<<case brothel>>
-		<img id="location" src="img/misc/brothel_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/brothel_dusk.png'">
 		<<case cafe>>
 			<<if $chef_state gte 9>>
-				<img id="location" src="img/misc/cafe_renovated_dusk.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_renovated_dusk.png'">
 			<<elseif $chef_state gte 7>>
-				<img id="location" src="img/misc/cafe_construction_dusk.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_construction_dusk.png'">
 			<<else>>
-				<img id="location" src="img/misc/cafe_dusk.png">
+				<img id="location" @src="'img/misc/' + _weather_display + '/cafe_dusk.png'">
 			<</if>>
 		<<case arcade>>
-		<img id="location" src="img/misc/arcade_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/arcade_dusk.png'">
 		<<case farm>>
-		<img id="location" src="img/misc/farm_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/farm_dusk.png'">
 		<<case wolf_cave>>
-		<img id="location" src="img/misc/wolf_cave_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/wolf_cave_dusk.png'">
 		<<case forest_shop>>
-		<img id="location" src="img/misc/forest_shop_dusk.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/forest_shop_dusk.png'">
 		<<case lake_ruin>>
-		<img id="location" src="img/misc/ruins_dusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/ruins_dusk.gif'">
 		<<case moor>>
-		<img id="location" src="img/misc/moor_dusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/moor_dusk.gif'">
 		<<case night_monster_lair>>
-		<img id="location" src="img/misc/night_monster_lair_dusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/night_monster_lair_dusk.gif'">
 		<<case alley>>
-		<img id="location" src="img/misc/alley_dusk.gif">
+		<<if $bus is "industrial">>
+			<img id="location" @src="'img/misc/' + _weather_display + '/indust_alley_dusk.gif'">
+		<<else>>
+			<img id="location" @src="'img/misc/' + _weather_display + '/alley_dusk.gif'">
+		<</if>>
 		<<case drain>>
-		<img id="location" src="img/misc/deepunderground.png">
+		<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
 		<<case spa>>
-		<img id="location" src="img/misc/spa_dusk.gif">
+		<img id="location" @src="'img/misc/' + _weather_display + '/spa_dusk.gif'">
 		<</switch>>
 	<</if>>
 
@@ -1859,6 +1969,8 @@
 	<<elseif $weather is "overcast">>
 		Clouds are hiding the sun.
 		<br>
+	<<elseif $weather is "snow">>
+		It's a snowy day.
 	<</if>>
 <<elseif $daystate is "night">>
 	<<if $weather is "clear">>
@@ -1870,6 +1982,8 @@
 	<<elseif $weather is "overcast">>
 		All starlight is blocked by the clouds.
 		<br>
+	<<elseif $weather is "snow">>
+		It's a snowy night.
 	<</if>>
 <<elseif $daystate is "dawn">>
 	<<if $weather is "clear">>
@@ -1881,6 +1995,8 @@
 	<<elseif $weather is "overcast">>
 		It's a cloudy morning.
 		<br>
+	<<elseif $weather is "snow">>
+		It's a snowy morning.
 	<</if>>
 <<elseif $daystate is "dusk">>
 	<<if $weather is "clear">>
@@ -1892,6 +2008,8 @@
 	<<elseif $weather is "overcast">>
 		It's cloudy evening.
 		<br>
+	<<elseif $weather is "snow">>
+		It's a snowy evening.
 	<</if>>
 <</if>>
 <</if>>
@@ -2375,24 +2493,31 @@ or $args[0] is "force">>
 
 <<widget "water">><<nobr>>
 <<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked") and $args[0] isnot "waist">>
-
-<<set $upperwet to 200>>
+	<<set $upperwet to 200>>
 <</if>>
 <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>>
-
-<<set $lowerwet to 200>>
+	<<set $lowerwet to 200>>
 <</if>>
 <<if !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked")>>
-
-<<set $underlowerwet to 200>>
+	<<set $underlowerwet to 200>>
 <</if>>
 <<if !$worn.under_upper.type.includes("swim") and !$worn.under_upper.type.includes("naked") and $args[0] isnot "waist">>
-
-<<set $underupperwet to 200>>
+	<<set $underupperwet to 200>>
 <</if>>
 
 <<waterwash>>
 <<set $inwater to 1>>
+<<set _water_warmth to 0>>
+<<if $location isnot "sea" and $outside is 1 and $season is "winter">>
+	<<if $worn.upper.type.includes("diving") or $worn.under_upper.type.includes("diving")>>
+		<<set _water_warmth += 1>>
+	<</if>>
+	<<if $worn.lower.type.includes("diving") or $worn.under_lower.type.includes("diving")>>
+		<<set _water_warmth += 1>>
+	<</if>>
+<<else>>
+	<<set _water_warmth to 2>>
+<</if>>
 <</nobr>><</widget>>
 
 <<widget "storecleanup">><<nobr>>
@@ -2834,13 +2959,13 @@ or $args[0] is "force">>
 <</if>>
 
 <<if $waterwash gte 10>>
-<span class="lewd">Copious amounts of lewd fluid washes into the water. You hope it doesn't attract attention.</span>
+<span class="lewd">Copious amounts of lewd fluid washes into the water. You hope it doesn't attract attention.</span><br>
 <<elseif $waterwash gte 5>>
-<span class="lewd">Lots of lewd fluid washes into the water. You hope it doesn't attract attention.</span>
+<span class="lewd">Lots of lewd fluid washes into the water. You hope it doesn't attract attention.</span><br>
 <<elseif $waterwash gte 2>>
-<span class="lewd">Lewd fluid washes into the water. You hope it doesn't attract attention.</span>
+<span class="lewd">Lewd fluid washes into the water. You hope it doesn't attract attention.</span><br>
 <<elseif $waterwash is 1>>
-<span class="lewd">Some lewd fluid washes into the water. You hope it doesn't attract attention.</span>
+<span class="lewd">Some lewd fluid washes into the water. You hope it doesn't attract attention.</span><br>
 <</if>>
 <<set $waterwash to 0>>
 
@@ -3268,6 +3393,29 @@ __Map__<br>
 	<</if>>
 <</nobr>><</widget>>
 
+<<widget "christmas_options">><<nobr>>
+<<if $christmas_wrap is 1>>
+	<<if $christmas_gift_robin is "shirt_unwrapped">>
+		<<link [[Wrap Robin's shirt and shorts (0:10)|Bedroom Robin Shirt Wrap]]>><<pass 10>><<set $christmas_gift_robin to "shirt">><<set $christmas_gift_robin_wrapped to 1>><</link>>
+		<br>
+	<<elseif $christmas_gift_robin is "sundress_unwrapped">>
+		<<link [[Wrap Robin's sundress (0:10)|Bedroom Robin Sundress Wrap]]>><<pass 10>><<set $christmas_gift_robin to "sundress">><<set $christmas_gift_robin_wrapped to 1>><</link>>
+		<br>
+	<<elseif $christmas_gift_robin is "kimono_unwrapped">>
+		<<link [[Wrap Robin's kimono (0:10)|Bedroom Robin Kimono Wrap]]>><<pass 10>><<set $christmas_gift_robin to "kimono">><<set $christmas_gift_robin_wrapped to 1>><</link>>
+		<br>
+	<<elseif $christmas_gift_robin is "christmas_unwrapped">>
+		<<link [[Wrap Robin's Christmas outfit (0:10)|Bedroom Robin Christmas Wrap]]>><<pass 10>><<set $christmas_gift_robin to "christmas">><<set $christmas_gift_robin_wrapped to 1>><</link>>
+		<br>
+	<</if>>
+	<<if $christmas_gift is "clothes_unwrapped">>
+		<<link [[Wrap the orphan's gifts (3:00)|Bedroom Orphans Clothes Wrap]]>><<pass 180>><<set $christmas_gift to "clothes">><</link>>
+		<br>
+	<</if>>
+<</if>>
+<</nobr>><</widget>>
+
+
 <<widget "encountersteal">><<nobr>>
 	<<set $rng to random(1, 100)>>
 	<<if $rng gte 96 and $spray lt $spraymax>>
@@ -4132,7 +4280,7 @@ __Map__<br>
 	<<get_pillory_npc>>
 	<<if $minute lte 15>>
 		A police officer <<print either("is releasing","has just released","is struggling to release","is about to release")>>
-		<<the_pillory_person>> from the pillory. <<if $weather is "rain">><<His>> clothes are see-through from the rain.<</if>>
+		<<the_pillory_person>> from the pillory. <<if $weather is "rain">><<His>> clothes are see-through from the rain.<<elseif $weather is "snow">><<He>> shivers in the cold.<</if>>
 	<<elseif $minute lte 30>>
 		<<The_pillory_person>> staggers away from the pillory with <<print either("tears","defiance","signs of trauma","fury")>> in <<his>> eyes.
 		<<if $weather is "rain">><<His>> clothes are see-through from the rain.<</if>>
diff --git a/game/overworld-forest/loc-asylum/events.twee b/game/overworld-forest/loc-asylum/events.twee
index 096276b6c5ffae41a3da803966cea5182c49aad4..4416ec1c672ccd478d766b87a24fb073de9b31a4 100644
--- a/game/overworld-forest/loc-asylum/events.twee
+++ b/game/overworld-forest/loc-asylum/events.twee
@@ -407,7 +407,7 @@ Several dozen tendrils emerge next. They snake over your body, writhing against
 <</if>>
 and against your <<breasts>>.
 <<if $worn.under_lower.name isnot "naked">>
-	Even your $worn.under_lower.name <<underlowerplural>> is no protection.
+	Even your $worn.under_lower.name <<underlowerplural>> no protection.
 <</if>>
 They tease your <<genitals>> without mercy.
 <br><br>
diff --git a/game/overworld-forest/loc-asylum/widgets.twee b/game/overworld-forest/loc-asylum/widgets.twee
index 27db5962c04f913b42bcb8dc0199d1853907e4df..9c0b2753a5ee5774f9d3f2b22fa699895a2b5d98 100644
--- a/game/overworld-forest/loc-asylum/widgets.twee
+++ b/game/overworld-forest/loc-asylum/widgets.twee
@@ -410,7 +410,7 @@ The room is tiny. There's just enough space to sit. You wait in total silence.
 <<if $danger gte (9900 - $allure)>>
 	<<if $rng gte 91>>
 		<<generate1>><<person1>>
-		"Excuse me," says a voice to your side. It's a <<person>> wearing a patient's gown. "Doctor Harper gave me a task. I need to," <<he>> looks away. "I need to exposed myself to a dozen people before my next assessment. My b-body, I mean. C-can I show you?" <<He>> doesn't look happy.
+		"Excuse me," says a voice to your side. It's a <<person>> wearing a patient's gown. "Doctor Harper gave me a task. I need to," <<he>> looks away. "I need to expose myself to a dozen people before my next assessment. My b-body, I mean. C-can I show you?" <<He>> doesn't look happy.
 		<br><br>
 
 		<<link [[Accept|Asylum Exposure Accept]]>><<arousal 600>><</link>><<garousal>>
diff --git a/game/overworld-forest/loc-cabin/events.twee b/game/overworld-forest/loc-cabin/events.twee
index 40ef3c527da66b4b0e878ce07a0d0410cce37cd1..28d6fd911ac53568dc13d61f85c2854bce79b3b1 100644
--- a/game/overworld-forest/loc-cabin/events.twee
+++ b/game/overworld-forest/loc-cabin/events.twee
@@ -1266,7 +1266,7 @@ You shove Eden away from you. <<He>> doesn't give up at first, and continues to
 
 <<else>>
 
-	<<He>> shakes <<his>> head. "Gun aren't for <<girls>> like you," <<he>> says. "You don't need them. You have me to protect you."
+	<<He>> shakes <<his>> head. "Guns aren't for <<girls>> like you," <<he>> says. "You don't need them. You have me to protect you."
 	<br><br>
 	<i>If <<he>> liked you more <<he>> might be more amenable to your request.</i>
 	<br><br>
diff --git a/game/overworld-forest/loc-cabin/intro.twee b/game/overworld-forest/loc-cabin/intro.twee
index c184ba2914d9cd2e16189063c1ac05fcb42b8dd5..fe9a8487b76314617e316b27e86ff62c37286bdd 100644
--- a/game/overworld-forest/loc-cabin/intro.twee
+++ b/game/overworld-forest/loc-cabin/intro.twee
@@ -389,11 +389,13 @@ You prepare the food and place it on the table in front of <<him>>. <<He>> takes
 <<His>> plate empty, <<he>> stands and looks out the window.
 
 <<if $weather is "clear">>
-"It's a lovely day! We'll be able to get lots of work done."
+	"It's a lovely day! We'll be able to get lots of work done."
 <<elseif $weather is "rain">>
-"We've got lots of work to do today. A little rain won't stop us."
+	"We've got lots of work to do today. A little rain won't stop us."
 <<elseif $weather is "overcast">>
-"The clouds are grumbling. Hopefully they don't burst before we're done for the day."
+	"The clouds are grumbling. Hopefully they don't burst before we're done for the day."
+<<elseif $weather is "snow">>
+	"It's cold today. Best keep active."
 <</if>>
 <br><br>
 
diff --git a/game/overworld-forest/loc-cabin/main.twee b/game/overworld-forest/loc-cabin/main.twee
index e1434e1f1be1792cc5b219811ef12b1e28278908..9fc15d5805318db0f7b2b8e6423ddca8964ef718 100644
--- a/game/overworld-forest/loc-cabin/main.twee
+++ b/game/overworld-forest/loc-cabin/main.twee
@@ -38,6 +38,8 @@ Embers burn in the hearth.
 
 <<elseif $weather is "rain">>
 Droplets of rainwater seep through the wooden ceiling and patter on the ground.
+<<elseif $weather is "snow">>
+Snow settles on the window sills.
 <</if>>
 
 <br><br>
@@ -468,8 +470,11 @@ You don't want to be seen like this! You rush to your clothes.
 <</if>>
 
 <<if $weather is "rain">>
-Rainwater drips from the branches above.
-<br><br>
+	Rainwater drips from the branches above.
+	<br><br>
+<<elseif $weather is "snow">>
+	Snow weighs down the branches above.
+	<br><br>
 <</if>>
 
 <<if $hour gte 9 and $hour lte 10>>
diff --git a/game/overworld-forest/loc-churchyard/main.twee b/game/overworld-forest/loc-churchyard/main.twee
index 58f6a3df5bace22794d70ee8e83962cc6fd6d5d9..9bcd63dd78907e0e26e1e275ffda79d4178467d3 100644
--- a/game/overworld-forest/loc-churchyard/main.twee
+++ b/game/overworld-forest/loc-churchyard/main.twee
@@ -11,6 +11,8 @@ You are the in the forest cemetery. An old manor looms from a hill, surrounded b
 			The moonlight-cast shadows seem to move.
 		<<elseif $weather is "rain">>
 			The patter of rain on stone drowns out all else.
+		<<elseif $weather is "snow">>
+			Snow rests on the headstones.
 		<<else>>
 			You're careful not to trip in the dark.
 		<</if>>
diff --git a/game/overworld-forest/loc-lake/events.twee b/game/overworld-forest/loc-lake/events.twee
index a36911b54941bf169f4f385a38821f6045fe03c2..6f9b1740924601f810ad222995587b4bde102803 100644
--- a/game/overworld-forest/loc-lake/events.twee
+++ b/game/overworld-forest/loc-lake/events.twee
@@ -12,7 +12,7 @@ You take a stroll around the Lake.
 	<</if>>
 
 	<<if $laketeenspresent is 1>>
-		You hear students are playing in the waterfall and sitting in the pond above.
+		You hear students playing in the waterfall and sitting in the pond above.
 	<<elseif $daystate is "night">>
 		Moonlight reveals the area around you and turns the falling water into a curtain of silver.
 	<<else>>
@@ -947,7 +947,11 @@ You awaken naked on a stone slab with your arms tied down. All around you loom <
 <<set $outside to 1>><<effects>><<lakeeffects>>
 You stand your ground. The boar doesn't consider long before charging you.
 <<if $rng gte 51>>
-	Before it reaches you however, it runs in a semicircle and back towards the forest. You hear a splash in the lake behind you, but when you turn there's nothing there.
+	<<if $season is "winter">>
+		Before it reaches you however, it runs in a semicircle and back towards the forest. You hear the lake ice crack behind you, but when you turn there's nothing there.
+	<<else>>
+		Before it reaches you however, it runs in a semicircle and back towards the forest. You hear a splash in the lake behind you, but when you turn there's nothing there.
+	<</if>>
 	<br><br>
 	<<set $eventskip to 1>>
 	<<destinationlake>>
@@ -1064,3 +1068,113 @@ You walk back to your clothes and get dressed. That was quite the stroll.
 
 <<link [[Next|Lake Shore]]>><<clotheson>><</link>>
 <br>
+
+
+:: Lake Ice Ignore [nobr]
+<<effects>>
+
+You don't want to look,
+<<if $willpower gte random(1, $willpowermax)>>
+	<span class="green">so you don't.</span> The terror dissipates as quick as it arrived.<<lstress>><<stress -6>>
+	<br><br>
+	
+	<<destination_lake_ice>>
+<<else>>
+	you dread it, <span class="red">but you can't help it.</span> You look beneath the ice.
+	<br><br>
+	
+	<<if $rng gte 95>>
+		A single, gargantuan eye stares through you. Stars fill your vision.
+		<br><br>
+		You're lying on the ice.<<ggtrauma>><<gstress>><<gpain>><<gawareness>><<trauma 18>><<stress 6>><<pain 4>><<awareness 1>>
+		<br><br>
+		
+		<<destination_lake_ice>>
+	<<else>>
+		There's nothing there. Of course there isn't.<<gstress>><<stress 6>><<gwillpower>><<willpower 1>>
+		<br><br>
+		
+		<<destination_lake_ice>>
+	<</if>>
+<</if>>
+
+
+:: Lake Ice Look [nobr]
+<<effects>>
+
+<<if $rng gte 95>>
+	A single, gargantuan eye stares through you. Stars fill your vision.
+	<br><br>
+	You're lying on the ice.<<ggtrauma>><<gstress>><<gpain>><<gawareness>><<trauma 18>><<stress 6>><<pain 4>><<awareness 1>>
+	<br><br>
+	
+	<<destination_lake_ice>>
+<<else>>
+	There's nothing there. Of course there isn't.<<gstress>><<stress 6>>
+	<br><br>
+	
+	<<destination_lake_ice>>
+<</if>>
+
+
+:: Lake Ice Careful [nobr]
+<<effects>>
+
+You lie on your belly and spread out your weight. You shuffle to a safer part of the lake.
+<br><br>
+
+<<destination_lake_ice>>
+
+:: Lake Ice Normal [nobr]
+<<effects>>
+
+<<if $rng gte 91>>
+	You keep walking, until the groaning stops.
+	<br><br>
+	
+	<<destination_lake_ice>>
+<<else>>
+	You keep walking. The ice feels fine, <span class="red">until it gives way all of a sudden.</span> You plunge into icey water.<<ggstress>><<stress 18>>
+	<br><br>
+	
+	<<link [[Next|Lake Underwater]]>><</link>>
+	<br>
+<</if>>
+
+:: Lake Ice Brace [nobr]
+<<effects>>
+
+You lean into your fall and hold out your arms. You save yourself from the worst of it.
+<br><br>
+
+<<if $laketeenspresent is 1 and $bus is "lakeshallows">>
+	You hear laughter. The others thought your fall funny.
+	<br><br>
+<</if>>
+
+<<tearful>> you climb to your feet.
+<br><br>
+
+<<destination_lake_ice>>
+
+
+:: Lake Ice Stay [nobr]
+<<effects>>
+
+You shift your weight, spin, 
+
+<<if $danceskill gte random(1, 600)>>
+	<span class="green">and manage to stay upright.</span> The danger over, that felt pretty cool.<<lstress>><<stress -6>>
+	<br><br>
+<<else>>
+	<span class="red">and land on your back with your legs in the air.</span><<ggstress>><<gpain>><<stress 6>><<pain 4>>
+	<br><br>
+	
+	<<if $laketeenspresent is 1 and $bus is "lakeshallows">>
+		You hear laughter. The others thought your fall funny.<<lcool>><<status -10>>
+		<br><br>
+	<</if>>
+
+<</if>> 
+
+<<destination_lake_ice>>
diff --git a/game/overworld-forest/loc-lake/main.twee b/game/overworld-forest/loc-lake/main.twee
index 9a7074d5cde302b83da935905110c8413f397335..9c14de5200aa2a057cc7c22668eaa245f674fc30 100644
--- a/game/overworld-forest/loc-lake/main.twee
+++ b/game/overworld-forest/loc-lake/main.twee
@@ -2,28 +2,49 @@
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
 <<set $forest to 30>><<set $bus to "lakeshore">>
 
-<<if $laketeenspresent is 1>>
-You are at the shore of the lake. There are several people playing in the water. You can see the Swimmers Dock with a few teens sitting on it.
-<<elseif $daystate is "night">>
-	<<if $weekday is 7 or $weekday is 1>>
-	You are at the shore of the lake. You can see faint light from a fire at the campsite across the water.
+<<if $season is "winter">>
+	<<if $laketeenspresent is 1>>
+	You are at the shore of the frozen lake. Teens hang out nearby, while others practise ice skating.
+	<<elseif $daystate is "night">>
+		<<if $weekday is 7 or $weekday is 1>>
+		You are at the shore of the frozen lake. You can see faint light from a fire at the campsite across the water.
+		<<else>>
+		You are at the shore of the frozen lake. Dark waters ripple unseen beneath the surface.
+		<</if>>
+	<<elseif $daystate is "dusk" or $daystate is "dawn">>
+		You are at the shore of the frozen lake. The sun reflects off the ice.
 	<<else>>
-	You are at the shore of the lake. Dark water ripples unseen.
+		You are at the shore of the frozen lake. You can see your reflection in its surface. You could walk out to the swimmers docks if you wanted.
+	<</if>>
+	<<if $weather is "snow">>
+		Snow settles on its surface
+	<<else>>
+		The ice is serene.
 	<</if>>
-<<elseif $daystate is "dusk" or $daystate is "dawn">>
-You are at the shore. Undulating waves splash against the sand and rocks. A bear eats fish on the opposite bank.
-<<else>>
-You are at the shore of the lake. You can see your reflection in its surface. The Swimmers Dock sits idle out on the water.
-<</if>>
-<<if $weather is "rain">>
-The water is alive with motion as rain breaks its surface.
 <<else>>
-The water is calm.
+	<<if $laketeenspresent is 1>>
+		You are at the shore of the lake. There are several people playing in the water. You can see the Swimmers Dock with a few teens sitting on it.
+	<<elseif $daystate is "night">>
+		<<if $weekday is 7 or $weekday is 1>>
+			You are at the shore of the lake. You can see faint light from a fire at the campsite across the water.
+		<<else>>
+			You are at the shore of the lake. Dark water ripples unseen.
+		<</if>>
+	<<elseif $daystate is "dusk" or $daystate is "dawn">>
+		You are at the shore of the lake. Undulating waves splash against the sand and rocks. A bear eats fish on the opposite bank.
+	<<else>>
+		You are at the shore of the lake. You can see your reflection in its surface. The Swimmers Dock sits idle out on the water.
+	<</if>>
+	<<if $weather is "rain">>
+		The water is alive with motion as rain breaks its surface.
+	<<else>>
+		The water is calm.
+	<</if>>
 <</if>>
 <br><br>
 
 <<if $exposed gte 1 and $laketeenspresent is 1>>
-You keep low and stay among the trees to keep your <<lewdness>> from being seen.
+You keep low and stay among the trees to keep your <<lewdness>>.
 <br><br>
 <</if>>
 
@@ -42,28 +63,35 @@ There's a rocky alcove where you could store your clothes.
 <br>
 <<lakeclothes>>
 
-	<<if $laketeenspresent is 1 and $exposed lte 0 and $hour isnot 20>>
-	<<link [[Hang out (0:30)|Lake Hang]]>><<pass 30>><<stress -6>><<status 1>><</link>><<gcool>><<lstress>>
-	<br>
+	<<if $laketeenspresent is 1 and $exposed lte 0 and $hour isnot 20 and $season isnot "winter">>
+		<<link [[Hang out (0:30)|Lake Hang]]>><<pass 30>><<stress -6>><<status 1>><</link>><<gcool>><<lstress>>
+		<br>
 	<</if>>
-<<link [[Swim (0:02)|Lake Shallows]]>><<pass 2>><</link>>
-<br>
-<<if $exposed gte 2>>
-	<<if $exhibitionism gte 75 and $laketeenspresent is 1>>
-		<<link [[Take a stroll (1:00)|Lake Stroll]]>><<pass 60>><<stress -6>><<arousal 1000>><<set $rng to random(1, 100)>><<set $phase to 2>><</link>><<exhibitionist5>><<garousal>><<lstress>>
+	<<if $season is "winter">>
+		<<link [[Walk onto the ice (0:02)|Lake Shallows Ice]]>><<pass 2>><</link>>
 		<br>
-	<<elseif $exhibitionism gte 55 and $laketeenspresent isnot 1>>
-		<<link [[Take a stroll (1:00)|Lake Stroll]]>><<pass 60>><<stress -6>><<arousal 1000>><<set $rng to random(1, 100)>><<set $phase to 3>><</link>><<exhibitionist4>><<garousal>><<lstress>>
+	<<else>>
+		<<link [[Swim (0:02)|Lake Shallows]]>><<pass 2>><</link>>
 		<br>
 	<</if>>
-<<else>>
-	<<link [[Take a stroll (1:00)|Lake Stroll]]>><<pass 60>><<stress -6>><<set $phase to 1>><</link>><<lstress>>
-	<br>
-<</if>>
+	<<if $season isnot "winter">>
+		<<if $exposed gte 2>>
+			<<if $exhibitionism gte 75 and $laketeenspresent is 1>>
+				<<link [[Take a stroll (1:00)|Lake Stroll]]>><<pass 60>><<stress -6>><<arousal 1000>><<set $rng to random(1, 100)>><<set $phase to 2>><</link>><<exhibitionist5>><<garousal>><<lstress>>
+				<br>
+			<<elseif $exhibitionism gte 55 and $laketeenspresent isnot 1>>
+				<<link [[Take a stroll (1:00)|Lake Stroll]]>><<pass 60>><<stress -6>><<arousal 1000>><<set $rng to random(1, 100)>><<set $phase to 3>><</link>><<exhibitionist4>><<garousal>><<lstress>>
+				<br>
+			<</if>>
+		<<else>>
+			<<link [[Take a stroll (1:00)|Lake Stroll]]>><<pass 60>><<stress -6>><<set $phase to 1>><</link>><<lstress>>
+			<br>
+		<</if>>
+	<</if>>
 <br>
 	<<if $dev is 1>>
-	<<link [[North to firepit (0:10)|Lake Firepit]]>><<pass 10>><</link>>
-	<br>
+		<<link [[North to firepit (0:10)|Lake Firepit]]>><<pass 10>><</link>>
+		<br>
 	<</if>>
 <<link [[South to waterfall (0:10)|Lake Waterfall]]>><<pass 10>><</link>>
 <br><br>
@@ -76,17 +104,30 @@ There's a rocky alcove where you could store your clothes.
 
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
 <<set $forest to 40>><<set $bus to "lakewaterfall">>
-<<if $laketeenspresent is 1>>
-	You are at the Waterfall. Some of the younger students are playing in the falling water. Teens sit in the pond above.
-<<elseif $daystate is "night">>
-	You are at the waterfall. The moonlight turns the falling water into a curtain of silver.
-<<else>>
-	You are at the Waterfall. Water is flowing down from the pond up on the rocks. A refreshing mist rolls out.
-<</if>>
-<<if $weather is "rain">>
-	The water is alive with motion as rain breaks its surface.
+<<if $season is "winter">>
+	<<if $daystate is "night">>
+		You are at the waterfall. A curtain of silver in the moonlight.
+	<<else>>
+		You are at the Waterfall. It feeds the lake through a gap in the ice.
+	<</if>>
+	<<if $weather is "snow">>
+		Snow settles on its surface.
+	<<else>>
+		The ice is serene.
+	<</if>>
 <<else>>
-	The water is calm.
+	<<if $laketeenspresent is 1>>
+		You are at the Waterfall. Some of the younger students are playing in the falling water. Teens sit in the pond above.
+	<<elseif $daystate is "night">>
+		You are at the waterfall. A curtain of silver in the moonlight.
+	<<else>>
+		You are at the Waterfall. Water is flowing down from the pond up on the rocks. A refreshing mist rolls out.
+	<</if>>
+	<<if $weather is "rain">>
+		The water is alive with motion as rain breaks its surface.
+	<<else>>
+		The water is calm.
+	<</if>>
 <</if>>
 <br><br>
 <<if $exposed gte 1 and $laketeenspresent is 1>>
@@ -111,7 +152,7 @@ There's a rocky alcove where you could store your clothes.
 		<<print '<<link [[Check ' + $container[$location].name + ' (0:05)|Containers]]>><<pass 5>><</link>>'>>
 		<br>
 	<</if>>
-	<<if $mason_count gte 2>>
+	<<if $mason_count gte 2 and $season isnot "winter">>
 		<<link [[Mason's pond (0:05)|Mason Pond]]>><<pass 5>><</link>>
 		<br>
 	<</if>>
@@ -129,19 +170,36 @@ There's a rocky alcove where you could store your clothes.
 
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
 <<set $forest to 50>><<set $bus to "lakefishingrock">>
-<<if $laketeenspresent is 1>>
-	You are on the Fishing Rock. You see people on the other side of the lake. Fish splash up to eat insects. It's peaceful, though the nearby trees are foreboding.
-<<elseif $daystate is "night">>
-	You are on the Fishing Rock. Dark water ripples unseen.
-<<elseif $daystate is "dusk" or $daystate is "dawn">>
-	You are on the Fishing Rock. Fish splash up to eat insects. It's peaceful, though the nearby trees are foreboding.
-<<else>>
-	You are on the Fishing Rock. From here you have a clear view of the entire lake. You see fish swimming in the water.
-<</if>>
-<<if $weather is "rain">>
-	The water is alive with motion as rain breaks its surface.
+<<if $season is "winter">>
+	<<if $laketeenspresent is 1>>
+		You are on the Fishing Rock. You see people on the other side of the frozen lake.
+	<<elseif $daystate is "night">>
+		You are on the Fishing Rock. Dark water ripples unseen beneath the ice.
+	<<elseif $daystate is "dusk" or $daystate is "dawn">>
+		You are on the Fishing Rock. It's peaceful, though the nearby trees are foreboding.
+	<<else>>
+		You are on the Fishing Rock. From here you have a clear view of the entire lake. The ice is serene.
+	<</if>>
+	<<if $weather is "snow">>
+		Snow settles on the ice
+	<<else>>
+		The ice is serene.
+	<</if>>
 <<else>>
-	The water is calm.
+	<<if $laketeenspresent is 1>>
+		You are on the Fishing Rock. You see people on the other side of the lake. Fish splash up to eat insects. It's peaceful, though the nearby trees are foreboding.
+	<<elseif $daystate is "night">>
+		You are on the Fishing Rock. Dark water ripples unseen.
+	<<elseif $daystate is "dusk" or $daystate is "dawn">>
+		You are on the Fishing Rock. Fish splash up to eat insects. It's peaceful, though the nearby trees are foreboding.
+	<<else>>
+		You are on the Fishing Rock. From here you have a clear view of the entire lake. You see fish swimming in the water.
+	<</if>>
+	<<if $weather is "rain">>
+		The water is alive with motion as rain breaks its surface.
+	<<else>>
+		The water is calm.
+	<</if>>
 <</if>>
 <br><br>
 <<if $exposed gte 1 and $laketeenspresent is 1>>
@@ -176,23 +234,44 @@ There's a rocky alcove where you could store your clothes.
 
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
 <<set $forest to 30>><<set $bus to "lakefirepit">>
-<<if $laketeenspresent is 1>>
-	You are at the Firepit. There are people sitting on the stone benches that circle the pit. You can see several people splashing in the water down on the shore.
-<<elseif $daystate is "night">>
-	<<if $laketeensfire is 1>>
-		You are at the Firepit. People are sitting around the fire as it burns, talking and drinking. The reflection of the fire on the lake's surface is almost mesmerising.
+<<if $season is "winter">>
+	<<if $laketeenspresent is 1>>
+		You are at the Firepit. Several teens sit on a circle of stone benches. Others try to skate on the nearby ice.
+	<<elseif $daystate is "night">>
+		<<if $laketeensfire is 1>>
+			You are at the Firepit. People are sitting around the fire as it burns, talking and drinking. The reflection of the fire on the lake's surface is almost mesmerising.
+		<<else>>
+			You are at the Firepit. Dark water ripples unseen beneath the ice.
+		<</if>>
+	<<elseif $daystate is "dusk" or $daystate is "dawn">>
+		You are at the Firepit. There are stone benches circling the pit.
 	<<else>>
-		You are at the Firepit. Dark water ripples unseen.
+		You are at the Firepit. There are stone benches circling the pit.
+	<</if>>
+	<<if $weather is "snow">>
+		Snow settles on the ice below.
+	<<else>>
+		The ice is serene.
 	<</if>>
-<<elseif $daystate is "dusk" or $daystate is "dawn">>
-	You are at the Firepit. There are stone benches circling the pit.
-<<else>>
-	You are at the Firepit. There are stone benches circling the pit.
-<</if>>
-<<if $weather is "rain">>
-	The water is alive with motion as rain breaks its surface.
 <<else>>
-	The water is calm.
+	<<if $laketeenspresent is 1>>
+		You are at the Firepit. Several teens sit on a circle of stone benches. You can see several people splashing in the water down on the shore.
+	<<elseif $daystate is "night">>
+		<<if $laketeensfire is 1>>
+			You are at the Firepit. People are sitting around the fire as it burns, talking and drinking. The reflection of the fire on the lake's surface is almost mesmerising.
+		<<else>>
+			You are at the Firepit. Dark water ripples unseen.
+		<</if>>
+	<<elseif $daystate is "dusk" or $daystate is "dawn">>
+		You are at the Firepit. There are stone benches circling the pit.
+	<<else>>
+		You are at the Firepit. There are stone benches circling the pit.
+	<</if>>
+	<<if $weather is "rain">>
+		The water is alive with motion as rain breaks its surface.
+	<<else>>
+		The water is calm.
+	<</if>>
 <</if>>
 <br><br>
 <<if $exposed gte 1 and $laketeenspresent is 1 or $laketeensfire is 1>>
@@ -223,21 +302,38 @@ There's a rocky alcove where you could store your clothes.
 
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
 <<set $forest to 50>><<set $bus to "lakecampsite">>
-<<if $daystate is "night">>
-	<<if $weather isnot "rain" and $hour gte 18 and $lakecouple isnot 1>>
-		You are at the Campsite. A couple cuddle beside a small fire. There is a tent set up nearby.
-	<<elseif $weather isnot "rain" and $hour lte 18>>
-		You are at the Campsite. Embers burn beside a tent.
+<<if $season is "winter">>
+	<<if $daystate is "night">>
+		<<if $weather isnot "rain" and $weather isnot "snow" and $hour gte 18 and $lakecouple isnot 1>>
+			You are at the Campsite. A couple cuddle beside a small fire. There is a tent set up nearby.
+		<<elseif $weather isnot "snow" and $hour lte 18>>
+			You are at the Campsite. Embers burn beside a tent.
+		<<else>>
+			You are at the Campsite. An unlit fireplace sits in the centre of the clearing. The snow may have driven off campers.
+		<</if>>
+	<<elseif $daystate is "dawn">>
+		You are at the Campsite. It looks like it was used recently.
 	<<else>>
-		You are at the Campsite. An unlit fireplace sits in the centre of the clearing. The rain may have driven off campers.
+		You are at the Campsite. An unlit fireplace sits in the centre of the clearing.
 	<</if>>
-<<elseif $daystate is "dawn">>
-	You are at the Campsite. It looks like it was used recently.
+	<br><br>
 <<else>>
-	You are at the Campsite. An unlit fireplace sits in the centre of the clearing.
+	<<if $daystate is "night">>
+		<<if $weather isnot "rain" and $weather isnot "snow" and $hour gte 18 and $lakecouple isnot 1>>
+			You are at the Campsite. A couple cuddle beside a small fire. There is a tent set up nearby.
+		<<elseif $weather isnot "rain" and $hour lte 18>>
+			You are at the Campsite. Embers burn beside a tent.
+		<<else>>
+			You are at the Campsite. An unlit fireplace sits in the centre of the clearing. The rain may have driven off campers.
+		<</if>>
+	<<elseif $daystate is "dawn">>
+		You are at the Campsite. It looks like it was used recently.
+	<<else>>
+		You are at the Campsite. An unlit fireplace sits in the centre of the clearing.
+	<</if>>
+	<br><br>
 <</if>>
-<br><br>
-<<if $weather isnot "rain" and $hour gte 18 and $exposed gte 1 and $lakecouple isnot 1>>
+<<if $weather isnot "rain" and $weather isnot "snow" and $hour gte 18 and $exposed gte 1 and $lakecouple isnot 1>>
 	<<if $exhibitionism gte 75>>
 	You keep low and stay among the trees. You really wish to show your <<lewdness>>, but you restrain yourself from doing so.
 	<<else>>
@@ -254,7 +350,7 @@ There's a rocky alcove where you could store your clothes.
 	<<eventlake>>
 <<else>>
 	<<lakereturnjourney>>
-	<<if $weather isnot "rain" and $hour gte 18 and $exposed lte 0 and $lakecouple isnot 1>>
+	<<if $weather isnot "rain" and $weather isnot "snow" and $hour gte 18 and $exposed lte 0 and $lakecouple isnot 1>>
 		<<link [[Approach the couple|Lake Couple]]>><</link>>
 		<br>
 	<</if>>
@@ -392,15 +488,69 @@ There's a rocky alcove where you could store your clothes.
 	<<set $eventskip to 0>>
 <</if>>
 
+:: Lake Shallows Ice [nobr]
+<<effects>>
+
+<<set $outside to 1>><<set $location to "lake">><<set $bus to "lakeshallows">><<effects>><<lakeeffects>>
+<<if $laketeenspresent is 1>>
+	You are stood on the frozen lake near the shore. Teens practise ice skating nearby.
+<<else>>
+	<<if $weather is "snow">>
+		You are stood on the frozen lake near the shore. Snow blankets the ice, softening your footsteps.
+	<<else>>
+		You are stood alone on the frozen lake near the shore. The sound of the forest fills the air.
+	<</if>>
+<</if>>
+<<if $science gte 400 and !$plants_known.includes("lotus")>>
+	You see lotus flowers trapped within the ice.
+<</if>>
+<br><br>
+<<if $laketeenspresent is 1 and $exposed gte 1>>
+	There's nowhere to hide. <<covered>>
+	<br><br>
+<</if>>
+
+<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
+<<if $stress gte 10000>>
+	<<passoutlake>>
+<<elseif $danger gte (9900 - ($allure / 2)) and $eventskip is 0>>
+	<<eventlakeice>>
+<<else>>
+
+	<<if $science gte 400 and !$plants_known.includes("lotus")>>
+		<<link [[Search for seeds (0:30)|Lake Lotus Ice]]>><<set $plants_known.push("lotus")>><<pass 30>><<tending 6>><</link>><<gtending>>
+		<br>
+	<</if>>
+	<<link [[Walk further out (0:12)|Lake Depths Ice]]>><<pass 12>><</link>>
+	<br>
+	<<if $exposed gte 1 and $laketeenspresent is 1>>
+	<<else>>
+		<<link [[Shore (0:02)|Lake Shore]]>><<pass 2>><</link>>
+		<br>
+	<</if>>
+	<<set $eventskip to 0>>
+<</if>>
+
+
+
 :: Lake Lotus [nobr]
 <<effects>>
 
-You swim among the lotus flowers, gathering seeds. <span class="gold">You can now grow lotus.</span> <i>Lotus are valuable, but might be difficulty to find the right environment for.</i>
+You swim among the lotus flowers, gathering seeds. <span class="gold">You can now grow lotus.</span> <i>Lotus are valuable, but need a special environment to grow.</i>
 <br><br>
 
 <<link [[Next|Lake Shallows]]>><</link>>
 <br>
 
+:: Lake Lotus Ice [nobr]
+<<effects>>
+
+You free the lotus flowers from the ice, gathering the seeds.  <span class="gold">You can now grow lotus.</span> <i>Lotus are valuable, but need a special environment to grow.</i>
+<br><br>
+
+<<link [[Next|Lake Shallows Ice]]>><</link>>
+<br>
+
 :: Lake Depths [nobr]
 
 <<set $outside to 1>><<set $location to "lake">><<set $bus to "lakedepths">><<water>><<effects>><<lakeeffects>>
@@ -529,6 +679,66 @@ You swim among the lotus flowers, gathering seeds. <span class="gold">You can no
 <</if>>
 <<set $lakesurface to 0>>
 
+
+:: Lake Depths Ice [nobr]
+
+<<set $outside to 1>><<set $location to "lake">><<set $bus to "lakedepths">><<effects>><<lakeeffects>>
+<<if $laketeenspresent is 1>>
+	You are in the middle of the frozen lake, near the swimming dock.
+<<else>>
+	<<if $weather is "snow">>
+		You are in the middle of the frozen lake, near the swimming dock. Thick snow makes it difficult to see the surrounding forest.
+	<<else>>
+		You are in the middle of the frozen lake, near the swimming dock.
+	<</if>>
+<</if>>
+<br><br>
+<<if $lake_ice_broken is undefined>>
+	Someone left equipment on the swimming dock, including a shovel. The ice is thin here. You could break through, with some effort.
+	<br><br>
+<<else>>
+	There's a hole in the ice, allowing access to the water below.
+	<br><br>
+<</if>>
+<<if $exposed gte 1>>
+	<<covered>> There's nowhere to hide out here.
+	<br><br>
+<</if>>
+
+<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
+<<if $stress gte 10000>>
+	<<passoutlake>>
+<<elseif $danger gte (9900 - ($allure + 1000)) and $eventskip is 0 and $lakesurface is 1>>
+	<span class="purple">Something followed you from the depths.</span> <<eventlakewater>>
+<<elseif $danger gte (9900 - ($allure / 2)) and $eventskip is 0>>
+	<<eventlakeice>>
+<<else>>
+	<<if $lake_ice_broken is undefined>>
+		<<link [[Break the Ice (0:30)|Lake Ice Break]]>><<pass 30>><<set $lake_ice_broken to 2>><<tiredness 3>><</link>><<gtiredness>>
+		<br>
+	<<else>>
+		<<link [[Dive (0:01)|Lake Underwater]]>><<pass 1>><</link>>
+		<br>
+	<</if>>
+	
+	<<link [[Walk towards shore (0:12)|Lake Shallows Ice]]>><<pass 12>><</link>>
+	<br><br>
+
+	<<set $eventskip to 0>>
+<</if>>
+<<set $lakesurface to 0>>
+
+
+:: Lake Ice Break [nobr]
+<<effects>>
+
+You lift the shovel, and thrust it into the ice. It's hard work, but you manage to make a sizable hole.
+<br><br>
+
+<<link [[Next|Lake Depths Ice]]>><</link>>
+<br>
+
+
 :: Lake Dock [nobr]
 
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
@@ -556,17 +766,33 @@ You swim among the lotus flowers, gathering seeds. <span class="gold">You can no
 <<if $phase is 1>>
 	<<set $phase to 0>>
 	You sit on the rock and look out at the lake. <i>Meditation effectiveness depends on willpower.</i>
-	<<if $daystate is "night">>
-		<<if $weather is "rain">>
-			The violent darkness roils before you.
+	<<if $season is "winter">>
+		<<if $daystate is "night">>
+			<<if $weather is "rain">>
+				The violent darkness roils before you.
+			<<else>>
+				The blackness stretches before you.
+			<</if>>
 		<<else>>
-			The blackness stretches before you.
+			<<if $weather is "rain">>
+				The water dances with raindrops.
+			<<else>>
+				The water is almost perfect in its stillness.
+			<</if>>
 		<</if>>
 	<<else>>
-		<<if $weather is "rain">>
-			The water dances with raindrops.
+		<<if $daystate is "night">>
+			<<if $weather is "snow">>
+				Silent snow settles in darkness.
+			<<else>>
+				The blackness stretches before you.
+			<</if>>
 		<<else>>
-			The water is almost perfect in its stillness.
+			<<if $weather is "snow">>
+				Snow blankets the ice.
+			<<else>>
+				The ice reflects the world.
+			<</if>>
 		<</if>>
 	<</if>>
 	<br><br>
@@ -581,7 +807,7 @@ You swim among the lotus flowers, gathering seeds. <span class="gold">You can no
 	You detach yourself from your thoughts. You witness them come and go, as if summoned by something else.
 	<br><br>
 	<<if $awareness gte 400>>
-		The water parts, revealing a gaping abyss. Terror shivers up your spine, and breaks your concentration.
+		The <<if $season is "winter">>ice<<else>>water<</if>> parts, revealing a gaping abyss. Terror shivers up your spine, and breaks your concentration.
 		<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
 		<br><br>
 	<</if>>
diff --git a/game/overworld-forest/loc-lake/underwater.twee b/game/overworld-forest/loc-lake/underwater.twee
index 56470b622e720d2911f7f968194b1cb472d48628..79983874187c278e2c4a3f8658fb2c1d0362f2e4 100644
--- a/game/overworld-forest/loc-lake/underwater.twee
+++ b/game/overworld-forest/loc-lake/underwater.twee
@@ -4,31 +4,130 @@
 <<if $stress gte 10000>>
 	<<passoutlake>>
 <<else>>
-	You are beneath the lake. You swim over dark silt and between tall weeds.
-	<<if $daystate is "night">>
-		<<if $weather is "rain">>
-			The water is black. It dulls the sound of the rain above.
-		<<elseif $weather is "clear">>
-			The plants glisten in moonlight.
+	<<if $season is "winter">>
+		You are beneath the lake. You swim beneath a crystal ceiling, between tall weeds.
+		<<if $daystate is "night">>
+			<<if $weather is "snow">>
+				The ice is pitch black.
+			<<elseif $weather is "clear">>
+				Pale moonlight spills through.
+			<<else>>
+				The ice is black.
+			<</if>>
 		<<else>>
-			The water is black.
+			<<if $weather is "snow">>
+				The ice is white.
+			<<elseif $weather is "clear">>
+				Sunlight pierces through.
+			<<else>>
+				The ice is a dull grey.
+			<</if>>
 		<</if>>
 	<<else>>
-		<<if $weather is "rain">>
-			The water is dark. It dulls the sound of the rain above.
-		<<elseif $weather is "clear">>
-			Sunlight pierces the gloom.
+		You are beneath the lake. You swim over dark silt and between tall weeds.
+		<<if $daystate is "night">>
+			<<if $weather is "rain">>
+				The water is black. It dulls the sound of the rain above.
+			<<elseif $weather is "clear">>
+				The plants glisten in moonlight.
+			<<else>>
+				The water is black.
+			<</if>>
 		<<else>>
-			The water is dark.
+			<<if $weather is "rain">>
+				The water is dark. It dulls the sound of the rain above.
+			<<elseif $weather is "clear">>
+				Sunlight pierces the gloom.
+			<<else>>
+				The water is dark.
+			<</if>>
 		<</if>>
 	<</if>>
 	<br><br>
 	<<link [[Swim inside ruin|Lake Ruin]]>><<wateraction>><</link>><<loxygen>>
 	<br><br>
-	<<link [[Surface|Lake Depths]]>><<set $lakesurface to 1>><</link>>
+	<<if $season is "winter" and $lake_ice_broken is undefined>>
+		<<if $lake_ice_broken is undefined>>
+			<<link [[Surface|Lake Underwater Ice]]>><</link>>
+			<br>
+		<<else>>
+			<<link [[Surface|Lake Depths Ice]]>><</link>>
+			<br>
+		<</if>>
+	<<else>>
+		<<link [[Surface|Lake Depths]]>><<set $lakesurface to 1>><</link>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Lake Underwater Ice [nobr]
+<<underwater>><<effects>>
+
+You swim up to the surface, <span class="red">but you can't find the hole in the ice.</span> It's frozen over!<<ggstress>><<stress 18>>
+<br><br>
+
+<<link [[Smash through|Lake Underwater Ice Smash]]>><<wateraction>><<pain 4>><</link>><<physiquedifficulty 1 $physiquemax>><<loxygen>><<gpain>>
+<br>
+<<link [[Keep calm and search for the hole|Lake Underwater Ice Calm]]>><<wateraction>><</link>><<willpowerdifficulty 1 $willpowermax>><<loxygen>>
+<br>
+<<link [[Swim back down|Lake Underwater]]>><<wateraction>><</link>><<loxygen>>
+<br>
+
+
+:: Lake Underwater Ice Smash [nobr]
+<<underwater>><<effects>>
+
+<<if $physique gte random(1, $physiquemax)>>
+	You smash your <<if $leftarm is "bound" and $rightarm is "bound">>feet<<else>>fists<</if>> against the ice. <span class="green">You hear it crack.</span> You keep bashing away, your strength bolstered by panic, and manage to bash open a hole large enough to climb through.
+	<br><br>
+	<<earnFeat "Under the Ice">>
+	You haul yourself onto the surface of the lake.
+	<br><br>
+	<<set $location to "lake">>
+	<<set $lake_ice_broken to 2>>
+	<<link [[Next|Lake Depths Ice]]>><<set $eventskip to 1>><</link>>
+	<br>
+<<else>>
+	Your <<if $leftarm is "bound" and $rightarm is "bound">>feet<<else>>fists<</if>> thud against the ice, <span class="red">but it remains solid</span>.
+	<br><br>
+	
+	<<link [[Keep trying|Lake Underwater Ice Smash]]>><<wateraction>><<pain 4>><</link>><<physiquedifficulty 1 $physiquemax>><<loxygen>><<gpain>>
+	<br>
+	<<link [[Keep calm and search for the hole|Lake Underwater Ice Calm]]>><<wateraction>><</link>><<willpowerdifficulty 1 $willpowermax>><<loxygen>>
+	<br>
+	<<link [[Swim back down|Lake Underwater]]>><<wateraction>><</link>><<loxygen>>
 	<br>
 <</if>>
 
+
+:: Lake Underwater Ice Calm [nobr]
+<<underwater>><<effects>>
+
+<<if $willpower gte random(1, $willpowermax)>>
+	You can't breathe to focus yourself, but you can feel the current around you. The ice won't be solid. There hasn't been time.
+	<br><br>
+	Now calm, you see it. A gap not far from you. You swim over, and push against the frozen ceiling. <span class="green">It breaks apart at your touch.</span>
+	<br><br>
+	<<earnFeat "Under the Ice">>
+	You haul yourself onto the surface of the lake.
+	<br><br>
+	<<set $location to "lake">>
+	<<set $lake_ice_broken to 2>>
+	<<link [[Next|Lake Depths Ice]]>><<set $eventskip to 1>><</link>>
+	<br>
+<<else>>
+	You'd normally breathe to stay calm, but you can't even do that. <span class="red">Frantic,</span> you push yourself along the surface <span class="red">in an erratic and hopeless pattern.</span><<gtrauma>><<trauma 6>><<ggwillpower>><<willpower 3>>
+	<br><br>
+	
+	<<link [[Smash through|Lake Underwater Ice Smash]]>><<wateraction>><<pain 4>><</link>><<physiquedifficulty 1 $physiquemax>><<loxygen>><<gpain>>
+	<br>
+	<<link [[Keep trying|Lake Underwater Ice Calm]]>><<wateraction>><</link>><<willpowerdifficulty 1 $willpowermax>><<loxygen>>
+	<br>
+	<<link [[Swim back down|Lake Underwater]]>><<wateraction>><</link>><<loxygen>>
+	<br>
+<</if>>
+
+
 :: Lake Ruin [nobr]
 
 <<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>>
@@ -235,7 +334,7 @@ Sensing imminent danger, you decide not to take any risks and leave the room.
 <<link [[Continue|Lake Ruin Deep]]>><<loxygen>><</link>>
 <br>
 
-:: Lake Ruin Deep Consentacles[nobr]
+:: Lake Ruin Deep Consentacles [nobr]
 
 <<if $sexstart is 1>>
 	<<set $sexstart to 0>>
diff --git a/game/overworld-forest/loc-lake/widgets.twee b/game/overworld-forest/loc-lake/widgets.twee
index caa0017389c4a1306307d0e98bca0b1037c5d8e7..923c725a0b605dc6663271c0194b36c0754622cb 100644
--- a/game/overworld-forest/loc-lake/widgets.twee
+++ b/game/overworld-forest/loc-lake/widgets.twee
@@ -2,7 +2,7 @@
 <<widget "lakeeffects">><<nobr>>
 <<if $schoolday is 1>>
 	<<if $daystate is "day" or $daystate is "dusk">>
-		<<if $hour gte 15 and $weather isnot "rain">>
+		<<if $hour gte 15 and $weather isnot "rain" and $weather isnot "snow">>
 			<<set $laketeenspresent to 1>>
 		<<else>>
 			<<set $laketeenspresent to 0>>
@@ -12,7 +12,7 @@
 	<</if>>
 <<else>>
 	<<if $daystate is "day" or $daystate is "dusk">>
-		<<if $weather isnot "rain">>
+		<<if $weather isnot "rain" and $weather isnot "snow">>
 			<<set $laketeenspresent to 1>>
 		<<else>>
 			<<set $laketeenspresent to 0>>
@@ -22,7 +22,7 @@
 	<</if>>
 <</if>>
 
-<<if $weather isnot "rain" and $hour gte 18>>
+<<if $weather isnot "rain" and $weather isnot "snow" and $hour gte 18>>
 	<<set $laketeensfire to 1>>
 <<else>>
 	<<set $laketeensfire to 0>>
@@ -66,7 +66,7 @@ You've pushed yourself too much.
 <<set $danger to random(1, 10000)>>
 
 <<if $danger gte (9900 - $allure)>>
-	<<if $laketeenspresent is 1>>
+	<<if $laketeenspresent is 1 and $season isnot "winter">>
 		<<link [[Next|Lake Mermaid]]>><</link>>
 		<br>
 	<<else>>
@@ -166,6 +166,92 @@ Someone screams. Everyone turns and backs away from the newcomer, a wolf. It sta
 
 <</nobr>><</widget>>
 
+<<widget "eventlakeice">><<nobr>>
+<<set $rng to random(1, 100)>>
+<<if $rng gte 81>>
+	<<if $danceskill gte random(1, 1000)>>
+		The wind picks up, almost knocking you over, <span class="green">but you manage to keep your footing.</span>
+		<br><br>
+	<<else>>
+		The wind picks up, <span class="red">and you lose your footing,</span> slipping on the ice.<<gstress>><<gpain>><<stress 6>><<pain 4>>
+		<br><br>
+	<</if>>
+	<<destination_lake_ice>>
+<<elseif $rng gte 61>>
+	You're struck by a sudden terror. <span class="pink">You feel watched.</span> 
+	<<if $laketeenspresent is 1>>
+		The voices of the teens fade, until you're alone.
+	<</if>>
+	<br><br>
+	There's something below.
+	<br><br>
+	
+	<<link [[Ignore|Lake Ice Ignore]]>><<def 1>><</link>><<willpowerdifficulty 1 $willpowermax>>
+	<br>
+	<<link [[Look down|Lake Ice Look]]>><</link>>
+	<br>
+<<elseif $rng gte 41>>
+	You hear a heavy groan. Then another. The ice might be unsafe.
+	<br><br>
+	
+	<<link [[Be careful (0:10)|Lake Ice Careful]]>><</link>>
+	<br>
+	<<link [[Walk normally|Lake Ice Normal]]>><</link>>
+	<br>
+<<elseif $rng gte 21>>
+	<<if $weather is "snow">>
+		The snow falls heavy, and conceals the trees around the lake.
+		<<if $history gte random(1, 1000)>>
+			<span class="green">It soon passes.</span>
+			<br><br>
+		<<else>>
+			Without the trees to orient yourself, <span class="red">you lose your direction,</span> though the heavy snow soon passes.<<gstress 6>>
+			<br><br>
+		<</if>>
+	<<elseif $weather is "clear">>
+		<<if $daystate is "night">>
+			<<if $moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lte 6>>
+				The red moon reflects off the ice. Dread stabs at you.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
+				<br><br>
+			<<else>>
+				The moon reflects off the ice. It's cold and beautiful.<<lstress>><<stress 6>>
+				<br><br>
+			<</if>>
+		<<else>>
+			The sun's glare reflects off the ice. You shield your eyes.
+			<br><br>
+		<</if>>
+	<<else>>
+		<<if $daystate is "night">>
+			You see a fox rummaging in the snow at the lake's edge. It's ears perk, and it bounds between the trees.
+			<br><br>
+		<<else>>
+			The surrounding trees are almost invisible in the dark.<<gstress>><<stress 6>>
+			<br><br>
+		<</if>>
+	<</if>>
+	<<destination_lake_ice>>
+<<else>>
+	You slip on the ice!<<gstress>><<stress 6>>
+	<br><br>
+	
+	<<link [[Brace yourself|Lake Ice Brace]]>><<status -10>><</link>><<if $laketeenspresent is 1 and $bus is "lakeshallows">><<lcool>><</if>><<gstress>>
+	<br>
+	<<link [[Try to stay upright|Lake Ice Stay]]>><</link>><<dancedifficulty 1 600>>
+	<br>
+<</if>>
+<</nobr>><</widget>>
+
+<<widget "destination_lake_ice">><<nobr>>
+<<if $bus is "lakedepths">>
+	<<link [[Next|Lake Depths Ice]]>><<set $eventskip to 1>><</link>>
+	<br>
+<<else>>
+	<<link [[Next|Lake Shallows Ice]]>><<set $eventskip to 1>><</link>>
+	<br>
+<</if>>
+<</nobr>><</widget>>
+
 <<widget "eventlake">><<nobr>>
 
 <<if $rng gte 81 and $bestialitydisable is "f">>
diff --git a/game/overworld-forest/loc-wolfpack/main.twee b/game/overworld-forest/loc-wolfpack/main.twee
index 2b42ffe2338a92cde8f586cefbe4bc3e29ded159..3c93b244bf1b707da74d61ae129f36d6d7c9d6ea 100644
--- a/game/overworld-forest/loc-wolfpack/main.twee
+++ b/game/overworld-forest/loc-wolfpack/main.twee
@@ -16,6 +16,8 @@ You are in the wolf cave. The ceiling hangs low. There's a breeze blowing from t
 <<else>>
 	<<if $weather is "rain">>
 		The pack shelters from the rain.
+	<<elseif $weather is "snow">>
+		The pack shelters from the snow.
 	<<else>>
 		The pack rests.
 	<</if>>
@@ -83,6 +85,8 @@ You are in the clearing outside the wolf cave. A stream runs by.
 <<else>>
 	<<if $weather is "rain">>
 		The pack shelters from the rain.
+	<<elseif $weather is "snow">>
+		The pack shelters from the snow.
 	<<else>>
 		The pack rests.
 	<</if>>
diff --git a/game/overworld-plains/loc-coast/coast.twee b/game/overworld-plains/loc-coast/coast.twee
index 1df7c6e61097f4b2f4582c6a182f4454ca69dc45..bd9e7a95947dacc702bb265b84a70208ff95326c 100644
--- a/game/overworld-plains/loc-coast/coast.twee
+++ b/game/overworld-plains/loc-coast/coast.twee
@@ -93,19 +93,17 @@ You follow the path east. It sometimes runs along the very top of the cliffs. At
 <<if $speed is "jog">>
 	<br><br>
 	<<if $athletics gte random(250, 700)>>
-		You feel more refreshed than you expected after a light jog on the coast. You're refreshed by the seaside air<<if $weather is "clear" and $daystate isnot "night">> and sunshine<</if>>.
+		You jog against the wind. <span class="green">The sea air <<if $weather is "clear">>and sunshine<</if>> is refreshing.</span>
 	<<else>>
-		While you were able to keep up the pace, you feel a little worn out.<<gtiredness>><<tiredness 2>>
+		You jog against the wind. <span class="red">You feel a little worn out.</span><<gtiredness>><<tiredness 2>>
 	<</if>>
-	<<gathletics>><<athletics 1>>
 <<elseif $speed is "run">>
 	<br><br>
 	<<if $athletics gte random(650, 1000)>>
-		You feel more refreshed than you expected after a run on the coast. You're refreshed by the seaside air<<if $weather is "clear" and $daystate isnot "night">> and sunshine<</if>>.
+		You run against the wind. <span class="green">The sea air <<if $weather is "clear">>and sunshine<</if>> is refreshing.</span>
 	<<else>>
-		While you were able to keep up the pace, you feel a little worn out.<<gtiredness>><<tiredness 5>>
+		You jog against the wind. <span class="red">You feel a little worn out.</span><<gtiredness>><<tiredness 5>>
 	<</if>>
-	<<gathletics>><<athletics 3>>
 <</if>>
 <<unset $speed>>
 <br><br>
@@ -123,19 +121,17 @@ You follow the path west. Wild grasses and other plants intrude on it, sometimes
 <<if $speed is "jog">>
 	<br><br>
 	<<if $athletics gte random(250, 700)>>
-		You feel more refreshed than you expected after a light jog on the coast. You're refreshed by the seaside air<<if $weather is "clear" and $daystate isnot "night">> and sunshine<</if>>.
+		You jog against the wind. <span class="green">The sea air <<if $weather is "clear">>and sunshine<</if>> is refreshing.</span>
 	<<else>>
-		While you were able to keep up the pace, you feel a little worn out.<<gtiredness>><<tiredness 2>>
+		You jog against the wind. <span class="red">You feel a little worn out.</span><<gtiredness>><<tiredness 2>>
 	<</if>>
-	<<gathletics>><<athletics 1>>
 <<elseif $speed is "run">>
 	<br><br>
 	<<if $athletics gte random(650, 1000)>>
-		You feel more refreshed than you expected after a run on the coast. You're refreshed by the seaside air<<if $weather is "clear" and $daystate isnot "night">> and sunshine<</if>>.
+		You run against the wind. <span class="green">The sea air <<if $weather is "clear">>and sunshine<</if>> is refreshing.</span>
 	<<else>>
-		While you were able to keep up the pace, you feel a little worn out.<<gtiredness>><<tiredness 5>>
+		You jog against the wind. <span class="red">You feel a little worn out.</span><<gtiredness>><<tiredness 5>>
 	<</if>>
-	<<gathletics>><<athletics 3>>
 <</if>>
 <<unset $speed>>
 You see the town in the distance.
diff --git a/game/overworld-plains/loc-coast/widgets.twee b/game/overworld-plains/loc-coast/widgets.twee
index 89811c6ed19ee79fb82a53becf3dec70bf82ba9b..b7b2aab06a8807b1d1ccfa94cfdf618134a21ffc 100644
--- a/game/overworld-plains/loc-coast/widgets.twee
+++ b/game/overworld-plains/loc-coast/widgets.twee
@@ -5,6 +5,8 @@
 		You hear waves crash below as rain lashes you.
 	<<elseif $weather is "overcast">>
 		You hear waves crash below.
+	<<elseif $weather is "snow">>
+		You hear waves crash below.
 	<<else>>
 		Stars glimmer over the endless deep.
 	<</if>>
@@ -13,6 +15,8 @@
 		Waves crash below as rain lashes you.
 	<<elseif $weather is "overcast">>
 		Waves crash below.
+	<<elseif $weather is "snow">>
+		Waves crash below.
 	<<else>>
 		The sun creeps above the water.
 	<</if>>
@@ -21,6 +25,8 @@
 		Waves crash below as rain lashes you.
 	<<elseif $weather is "overcast">>
 		The darkling water stretches to the horizon.
+	<<elseif $weather is "snow">>
+		The darkling water stretches to the horizon.
 	<<else>>
 		The fading sun still illuminates the water with an orange glow.
 	<</if>>
@@ -29,6 +35,8 @@
 		Waves crash below as rain lashes you.
 	<<elseif $weather is "overcast">>
 		Grey water stretches to the horizon.
+	<<elseif $weather is "snow">>
+		Grey water stretches to the horizon.
 	<<else>>
 		Grey-blue water stretches to the horizon.
 	<</if>>
diff --git a/game/overworld-plains/loc-farm/main.twee b/game/overworld-plains/loc-farm/main.twee
index 78dfc2e10a2f1d2b4eb4161da73b2cd605206199..d76210c217d8eefa1fb4208b2f98c91f050be06d 100644
--- a/game/overworld-plains/loc-farm/main.twee
+++ b/game/overworld-plains/loc-farm/main.twee
@@ -6,6 +6,8 @@ You are in the farmlands.
 		Rainwater floods the fields.
 	<<elseif $weather is "overcast">>
 		You can see little in the darkness.
+	<<elseif $weather is "snow">>
+		Snow buries the fields.
 	<<else>>
 		Stars glimmer over the fields.
 	<</if>>
@@ -14,6 +16,8 @@ You are in the farmlands.
 		Rain sweeps over the fields.
 	<<elseif $weather is "overcast">>
 		A dense fog devours the fields.
+	<<elseif $weather is "snow">>
+		Snow blankets the fields.
 	<<else>>
 		The fields greet the morning sun on the horizon.
 	<</if>>
@@ -22,6 +26,8 @@ You are in the farmlands.
 		Rain blows in from the ocean beneath an ever-darkening sky.
 	<<elseif $weather is "overcast">>
 		It's already getting hard to see the fields.
+	<<elseif $weather is "snow">>
+		Snow blows over the fields.
 	<<else>>
 		The sun sets over the fields.
 	<</if>>
@@ -30,6 +36,8 @@ You are in the farmlands.
 		Rainwater feeds the surrounding fields.
 	<<elseif $weather is "overcast">>
 		Grey skies stretch in all directions.
+	<<elseif $weather is "snow">>
+		Snow covers the fields.
 	<<else>>
 		The sun beams over fertile fields.
 	<</if>>
@@ -94,6 +102,8 @@ You stand under the porch as the <<if $pronoun is "m">>boy<<else>>girl<</if>> ca
 The <<if $pronoun is "m">>boy<<else>>girl<</if>> stretches <<his>> back as <<he>> walks towards you,
 <<if $weather is "rain">>
 	wiping <<his>> red fringe away from <<his>> eyes. "Let's get you out of this rain," <<he>> says, opening the door. "I'll put the kettle on."
+<<elseif $weather is "snow">>
+	wiping <<his>> red fringe away from <<his>> eyes. "Let's get you out of this cold," <<he>> says, opening the door. "I'll put the kettle on."
 <<else>>
 	sweat glistening on <<his>> forehead. <<He>> wipes <<his>> red fringe away from <<his>> eyes. "I'll put the kettle on," <<he>> says, opening the door.
 <</if>>
diff --git a/game/overworld-plains/loc-farm/meadow.twee b/game/overworld-plains/loc-farm/meadow.twee
index fd923aaf018b7035566d145095ace48001df914b..7858ab62f628260b5c0143eee733d53770659f78 100644
--- a/game/overworld-plains/loc-farm/meadow.twee
+++ b/game/overworld-plains/loc-farm/meadow.twee
@@ -6,6 +6,8 @@ You are in a meadow ringed by tall trees. Long grass caresses your legs. A solit
 <<if $daystate is "night">>
 	<<if $weather is "rain">>
 		You can see little through the dark rain.
+	<<elseif $weather is "snow">>
+		Snow settles between the blades.
 	<<else>>
 		The blades sway in a silent breeze.
 	<</if>>
@@ -14,6 +16,8 @@ You are in a meadow ringed by tall trees. Long grass caresses your legs. A solit
 		Dark clouds fill the sky.
 	<<elseif $weather is "clear">>
 		The sun rises clear over the horizon.
+	<<elseif $weather is "snow">>
+		Snowflakes fall in the morning light.
 	<<else>>
 		The trees sway with the wind.
 	<</if>>
@@ -22,6 +26,8 @@ You are in a meadow ringed by tall trees. Long grass caresses your legs. A solit
 		Darkling clouds fill the sky.
 	<<elseif $weather is "clear">>
 		The sun disappears over the horizon.
+	<<elseif $weather is "snow">>
+		Snow settles in the dwindling light.
 	<<else>>
 		The trees sway with the wind.
 	<</if>>
@@ -30,6 +36,8 @@ You are in a meadow ringed by tall trees. Long grass caresses your legs. A solit
 		The blades sway with the wind.
 	<<elseif $weather is "clear">>
 		Bright flowers bloom in many colours.
+	<<elseif $weather is "snow">>
+		Snow blankets the treetops, and settles between the blades.
 	<<else>>
 		The blades sway in the breeze.
 	<</if>>
diff --git a/game/overworld-plains/loc-farm/road.twee b/game/overworld-plains/loc-farm/road.twee
index c98773d36d61f3bd551870c94bd9cd9220bdcb00..2d7b6e0d500421ec2a86ab99a88b698dd89b7015 100644
--- a/game/overworld-plains/loc-farm/road.twee
+++ b/game/overworld-plains/loc-farm/road.twee
@@ -31,12 +31,12 @@
 	<</if>>
 <<else>>
 	<<if $exposed lte 0>>
-		<<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
+		<<ind>><<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
 		<br>
 	<</if>>
-	<<link [[Walk into the countryside (0:30)|Farm Road 2]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
+	<<roadicon>><<link [[Walk into the countryside (0:30)|Farm Road 2]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
-	<<link [[Enter Town (0:05)|Harvest Street]]>><<pass 5>><</link>>
+	<<ind>><<link [[Enter Town (0:05)|Harvest Street]]>><<pass 5>><</link>>
 	<br>
 <</if>>
 
@@ -70,12 +70,12 @@
 	<</if>>
 <<else>>
 	<<if $exposed lte 0>>
-		<<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
+		<<ind>><<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
 		<br>
 	<</if>>
-	<<link [[Walk deeper into the countryside (0:30)|Farm Road 3]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
+	<<roadicon>><<link [[Walk deeper into the countryside (0:30)|Farm Road 3]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
-	<<link [[Walk towards town (0:30)|Farm Road 1]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
+	<<ind>><<link [[Walk towards town (0:30)|Farm Road 1]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
 <</if>>
 
@@ -109,12 +109,12 @@
 	<</if>>
 <<else>>
 	<<if $exposed lte 0>>
-		<<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
+		<<ind>><<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
 		<br>
 	<</if>>
-	<<link [[Walk deeper into the countryside (0:30)|Farm Road 4]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
+	<<roadicon>><<link [[Walk deeper into the countryside (0:30)|Farm Road 4]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
-	<<link [[Walk towards town (0:30)|Farm Road 2]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
+	<<ind>><<link [[Walk towards town (0:30)|Farm Road 2]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
 <</if>>
 
@@ -159,12 +159,12 @@
 	<</if>>
 <<else>>
 	<<if $exposed lte 0>>
-		<<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
+		<<ind>><<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
 		<br>
 	<</if>>
-	<<link [[Walk deeper into the countryside (0:30)|Farm Road 5]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
+	<<roadicon>><<link [[Walk deeper into the countryside (0:30)|Farm Road 5]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
-	<<link [[Walk towards town (0:30)|Farm Road 3]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
+	<<ind>><<link [[Walk towards town (0:30)|Farm Road 3]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
 <</if>>
 
@@ -198,12 +198,12 @@
 	<</if>>
 <<else>>
 	<<if $exposed lte 0>>
-		<<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
+		<<ind>><<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
 		<br>
 	<</if>>
-	<<link [[Walk deeper into the countryside (0:30)|Farm Road 6]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
+	<<roadicon>><<link [[Walk deeper into the countryside (0:30)|Farm Road 6]]>><<pass 30>><<set $phase to 1>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
-	<<link [[Walk towards town (0:30)|Farm Road 4]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
+	<<ind>><<link [[Walk towards town (0:30)|Farm Road 4]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
 <</if>>
 
@@ -251,12 +251,12 @@
 	<</if>>
 <<else>>
 	<<if $exposed lte 0>>
-		<<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
+		<<ind>><<link [[Hitchhike (0:15)|Farm Hitchhike]]>><<pass 15>><</link>>
 		<br>
 	<</if>>
-	<<link [[Enter the farmlands (0:05)|Farmland]]>><<pass 5>><</link>>
+	<<roadicon>><<link [[Enter the farmlands (0:05)|Farmland]]>><<pass 5>><</link>>
 	<br>
-	<<link [[Walk towards town (0:30)|Farm Road 5]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
+	<<ind>><<link [[Walk towards town (0:30)|Farm Road 5]]>><<pass 30>><<set $phase to 2>><<tiredness 3>><</link>><<gtiredness>>
 	<br>
 <</if>>
 <<set $eventskip to 0>>
diff --git a/game/overworld-plains/loc-farm/widgets.twee b/game/overworld-plains/loc-farm/widgets.twee
index 78951a946e7cc0ee4bcf38b53efd1b6e20bae8a7..ca62db7df6687e43b10ae5fc2982042aff8ae0fe 100644
--- a/game/overworld-plains/loc-farm/widgets.twee
+++ b/game/overworld-plains/loc-farm/widgets.twee
@@ -924,7 +924,7 @@ You've pushed yourself too much. You pass out.
 <</if>>
 
 <<if $farm_work.alex isnot "relax">>
-	<<link [[Rest near the stables (0:15)|Farm Stables Rest]]>><<farm_count 15>><<pass 15>><<stress -2>><</link>><<lstress>>
+	<<link [[Rest near the stables (0:15)|Farm Stables Rest]]>><<pass 15>><<stress -2>><</link>><<lstress>>
 <</if>>
 <br>
 <</nobr>><</widget>>
@@ -1256,7 +1256,7 @@ You've pushed yourself too much. You pass out.
 	<<if $farm.beasts.horses gte 5>>
 		"Looks like <<farm_he horse>> likes you," the <<person2>><<person>> says. "Keep up the good work."<<gfarm>><<farm_yield 1>>
 	<<elseif $farm.beasts.horses lte -5>>
-		"<<farm_He horse>>'s not fond you," the <<person>> chuckles. "I guess it can't be helped."
+		"Not fond of you, is <<farm_he horse>>?" the <<person>> chuckles. "I guess it can't be helped."
 	<<else>>
 		"I like what I've seen," the <<person>> says. "Keep it up."
 	<</if>>
diff --git a/game/overworld-plains/loc-farm/work.twee b/game/overworld-plains/loc-farm/work.twee
index 4d31746157e7806ebe8f6188a826eadaec8fa240..7a0a5a87494d75dc0424294208324e878622ba7d 100644
--- a/game/overworld-plains/loc-farm/work.twee
+++ b/game/overworld-plains/loc-farm/work.twee
@@ -1517,13 +1517,14 @@ You sneak up to the shed, and push the door open.
 
 <<if $weather is "rain">>
 	You endure the rain as you search for invasive weeds, digging them up at the roots before they can strangle the crops.
-
 <<elseif $weather is "clear">>
 	<<if $rng gte 51>>
 		The sun beats down as you search for invasive weeds, digging them up at the roots before they can strangle the crops.
 	<<else>>
 		The sun beats down as you water the crops.
 	<</if>>
+<<elseif $weather is "snow">>
+	You endure the cold as you search for invasive weeds, digging them up at the roots before they can strangle the crops.
 <<else>>
 	<<if $rng gte 51>>
 		You search for invasive weeds, digging them up at the roots before they can strangle the crops.
@@ -1560,13 +1561,14 @@ You sneak up to the shed, and push the door open.
 
 <<if $weather is "rain">>
 	You endure the rain as you help Alex search for invasive weeds, digging them up at the roots before they can strangle the crops.
-
 <<elseif $weather is "clear">>
 	<<if $rng gte 51>>
 		The sun beats down as you help Alex search for invasive weeds, digging them up at the roots before they can strangle the crops.
 	<<else>>
 		The sun beats down as you help Alex water the crops.
 	<</if>>
+<<elseif $weather is "snow">>
+	You endure the rain as you help Alex search for invasive weeds, digging them up at the roots before they can strangle the crops.
 <<else>>
 	<<if $rng gte 51>>
 		You help Alex search for invasive weeds, digging them up at the roots before they can strangle the crops.
@@ -1603,6 +1605,8 @@ You sneak up to the shed, and push the door open.
 	You endure the rain as you help Alex clear the invasive weeds, digging them up at the roots and freeing the land for cultivation.
 <<elseif $weather is "clear">>
 	The sun beats down as you help Alex clear the invasive weeds, digging them up at the roots and freeing the land for cultivation.
+<<elseif $weather is "snow">>
+	You endure the cold as you help Alex clear the invasive weeds, digging them up at the roots and freeing the land for cultivation.
 <<else>>
 	You help Alex clear the invasive weeds, digging them up at the roots and freeing the land for cultivation.
 <</if>>
@@ -1643,6 +1647,8 @@ You sneak up to the shed, and push the door open.
 		<<He>> reclines in the shade beneath the boughs of a tree.
 	<<elseif $weather is "rain">>
 		<<He>> shelters from the rain beneath the boughs of a tree.
+	<<elseif $weather is "snow">>
+		<<He>> shelters from the snow beneath the boughs of a tree.
 	<<else>>
 		<<He>> reclines beneath the boughs of a tree.
 	<</if>>
@@ -1729,14 +1735,14 @@ You sit and lean against the tree.
 :: Farm Stables Rest [nobr]
 <<effects>><<set $outside to 0>>
 
-You relax on the hammock next to the stables. <<if $weather is "rain">>You'r glad that you can get some cover from the rain.<</if>>
+You relax on a hammock next to the stables. <<if $weather is "rain">>You're glad to have cover from the rain.<<elseif $weather is "snow">>You're sheltered from the cold.<</if>>
 
 <<if $daystate is "night">>
-	With the horses sleeping, your able to enjoy the peace and quite.<<tiredness -1>><<ltiredness>>
+	With the horses sleeping, you're able to enjoy some peace and quiet.<<tiredness -1>><<ltiredness>>
 <<if $farm_work.horses_out is 1>>
-	With the horses out running in the fields, your able to enjoy the peace and quite.<<tiredness -1>><<ltiredness>>
+	With the horses out running in the fields, you're able to enjoy some peace and quiet.<<tiredness -1>><<ltiredness>>
 <<else>>
-	With the horses in the barn, their movement's make you wonder what they are doing.<<stress -1>><<lstress>>
+	The horses are inside. You hear them move around.<<stress -1>><<lstress>>
 <</if>>
 <br><br>
 <<link [[Next|Farm Work]]>><</link>>
diff --git a/game/overworld-plains/loc-livestock/main.twee b/game/overworld-plains/loc-livestock/main.twee
index 0b13b103437dfe9e9615bf8337705ae0023794ec..72aac60c0b298ed22852c2d94243a3ca65fce599 100644
--- a/game/overworld-plains/loc-livestock/main.twee
+++ b/game/overworld-plains/loc-livestock/main.twee
@@ -1247,6 +1247,8 @@ A weak light pierces the high windows. It's dawn.
 	You emerge outside, into the rain and mud.
 <<elseif $weather is "clear">>
 	You emerge outside, into sunlight.
+<<elseif $weather is "snow">>
+	You emerge outside, into the snow.
 <<else>>
 	You emerge outside.
 <</if>>
@@ -1293,6 +1295,8 @@ You refuse to leave your cell. The farmhand who opened it, a <<person>>, steps i
 	You emerge outside, into the rain and mud.
 <<elseif $weather is "clear">>
 	You emerge outside, into sunlight.
+<<elseif $weather is "snow">>
+	You emerge outside, into the snow.
 <<else>>
 	You emerge outside.
 <</if>>
diff --git a/game/overworld-plains/loc-livestock/passout.twee b/game/overworld-plains/loc-livestock/passout.twee
index a0b7ee85f75926a757efe3fcdd04f7d1225985a6..5b8dddd962ec0b4f0b684ce57c01c95f215786c6 100644
--- a/game/overworld-plains/loc-livestock/passout.twee
+++ b/game/overworld-plains/loc-livestock/passout.twee
@@ -95,6 +95,8 @@ You're led up the stairs, and emerge
 		in the rain.
 	<<elseif $weather is "clear">>
 		into sunlight.
+	<<elseif $weather is "snow">>
+		into the snow.
 	<<else>>
 		into daylight.
 	<</if>>
diff --git a/game/overworld-plains/loc-moor/main.twee b/game/overworld-plains/loc-moor/main.twee
index d8279e67a02e20d5e9c85eb2ae792ec71f8f1d08..2f765789379429f798acf8492c3bc41fa5169173 100644
--- a/game/overworld-plains/loc-moor/main.twee
+++ b/game/overworld-plains/loc-moor/main.twee
@@ -16,7 +16,7 @@ You are on the moor.
 <<if $weather is "rain">>
 	There are few places to hide from the rain.
 <<elseif $weather is "snow">>
-	A sheen of snow covers everything.
+	A sheet of snow covers everything.
 <</if>>
 <br><br>
 
diff --git a/game/overworld-town/loc-alley/park.twee b/game/overworld-town/loc-alley/park.twee
index 1b288c5dbe94895bcec14f9ddf99443ac1362d63..62278ef24ab5e574dc55fbc570aad199931b6692 100644
--- a/game/overworld-town/loc-alley/park.twee
+++ b/game/overworld-town/loc-alley/park.twee
@@ -7,6 +7,8 @@ You are in the park.
 <<elseif $daystate is "day">>
 	<<if $weather is "rain">>
 		A few people are out, walking around the puddles dotting the paths.
+	<<elseif $weather is "snow">>
+		Many people are out, walking their dogs or jogging, wrapped up warm against the cold.
 	<<else>>
 		Many people are out, walking their dogs or jogging. You hear children in the playground.
 	<</if>>
@@ -103,7 +105,7 @@ You are in the park.
 				<br>
 			<</if>>
 		<</if>>
-		<<if $exposed lte 0 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and $weather isnot "rain" and $daystate is "day">>
+		<<if $exposed lte 0 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and $weather isnot "rain" and $weather isnot "snow" and $daystate is "day">>
 			<<if $schoolday isnot 1 or $hour lte 8 or $hour gte 15>>
 				Kylar sits on a bench, sketching something.
 				<br>
@@ -111,9 +113,9 @@ You are in the park.
 				<br><br>
 			<</if>>
 		<</if>>
-		<<link [[Men's toilets|Men's Toilets]]>><</link>>
+		<<maleicon>><<link [[Men's toilets|Men's Toilets]]>><</link>>
 		<br>
-		<<link [[Women's toilets|Women's Toilets]]>><</link>>
+		<<femaleicon>><<link [[Women's toilets|Women's Toilets]]>><</link>>
 		<br>
 		<<if $worn.feet.type.includes("heels") and ($exposed is 0 or $daystate is "night")>>
 			<<link [[Exercise in heels (0:30)|Park Exercise Heels]]>><<pass 30>><<tiredness 3>><<stress -1>><<athletics 2>><<slimeEventEnd>><</link>><<ggtiredness>><<gathletics>><<lstress>>
diff --git a/game/overworld-town/loc-alley/residential.twee b/game/overworld-town/loc-alley/residential.twee
index eb7ddf8ce1ed01ad32cff9b2f0053ba9f19c821e..e14e1d471432a31ea90ffe2aa4037cd1c5453837 100644
--- a/game/overworld-town/loc-alley/residential.twee
+++ b/game/overworld-town/loc-alley/residential.twee
@@ -34,10 +34,10 @@ Your home is nearby.
 		Places of interest
 		<br>
 		<<if $exposed gte 1>>
-			<<link [[Go home (0:02)->Home Fence]]>><<if $fenceclimb isnot 1>><<set $fenceclimb to 1>><<transform cat 1>><</if>><<pass 2>><</link>>
+			<<homeicon>><<link [[Go home (0:02)->Home Fence]]>><<if $fenceclimb isnot 1>><<set $fenceclimb to 1>><<transform cat 1>><</if>><<pass 2>><</link>>
 			<br>
 		<<else>>
-			<<link [[Go home (0:02)->Garden]]>><<if $fenceclimb isnot 1>><<set $fenceclimb to 1>><<transform cat 1>><</if>><<pass 2>><</link>>
+			<<homeicon>><<link [[Go home (0:02)->Garden]]>><<if $fenceclimb isnot 1>><<set $fenceclimb to 1>><<transform cat 1>><</if>><<pass 2>><</link>>
 			<br>
 		<</if>>
 		<<if $cat gte 6 and $daystate is "night">>
@@ -87,6 +87,8 @@ Your home is nearby.
 <<set $outside to 1>><<set $location to "town">><<effects>>
 <<if $weather is "rain">>
 	You meow into the night, competing with the rain.
+<<elseif $weather is "snow">>
+	You meow into the snowy night.
 <<else>>
 	You meow into the night.
 <</if>>
diff --git a/game/overworld-town/loc-alley/widgets.twee b/game/overworld-town/loc-alley/widgets.twee
index eb082e4a4ad3af546d75fc564f04fd9ad80f11bb..bb245425d2a1814f44398306e5996b71d26fabf3 100644
--- a/game/overworld-town/loc-alley/widgets.twee
+++ b/game/overworld-town/loc-alley/widgets.twee
@@ -179,7 +179,7 @@ There's nothing to hide behind for a long stretch up ahead. You glance over your
 <</nobr>><</widget>>
 
 <<widget "residential">><<nobr>>
-	<<add_link "<<link [[Residential alleyways (0:05)|Residential alleyways]]>><<pass 5>><</link>><br>">><<hideDisplay true>>
+	<<add_link "<<alleyicon>><<link [[Residential alleyways (0:05)|Residential alleyways]]>><<pass 5>><</link>><br>">><<hideDisplay true>>
 <</nobr>><</widget>>
 
 <<widget "residentialquick">><<nobr>>
@@ -193,7 +193,7 @@ There's nothing to hide behind for a long stretch up ahead. You glance over your
 :: Widgets Industrial [widget]
 
 <<widget "industrial">><<nobr>>
-	<<add_link "<<link [[Industrial alleyways (0:05)|Industrial alleyways]]>><<pass 5>><</link>><br>">><<hideDisplay true>>
+	<<add_link "<<alleyicon>><<link [[Industrial alleyways (0:05)|Industrial alleyways]]>><<pass 5>><</link>><br>">><<hideDisplay true>>
 <</nobr>><</widget>>
 
 <<widget "industrialquick">><<nobr>>
@@ -207,7 +207,7 @@ There's nothing to hide behind for a long stretch up ahead. You glance over your
 :: Widgets Commercial [widget]
 
 <<widget "commercial">><<nobr>>
-	<<add_link "<<link [[Commercial alleyways (0:05)|Commercial alleyways]]>><<pass 5>><</link>><br>">><<hideDisplay true>>
+	<<add_link "<<alleyicon>><<link [[Commercial alleyways (0:05)|Commercial alleyways]]>><<pass 5>><</link>><br>">><<hideDisplay true>>
 <</nobr>><</widget>>
 
 <<widget "commercialquick">><<nobr>>
diff --git a/game/overworld-town/loc-arcade/main.twee b/game/overworld-town/loc-arcade/main.twee
index 483fea0f2de5653241c8574ac7373107c7490dd4..92900e238e41f174a3459d1bb0ef51c94b8d8596 100644
--- a/game/overworld-town/loc-arcade/main.twee
+++ b/game/overworld-town/loc-arcade/main.twee
@@ -51,7 +51,7 @@ The games and gambling machines lie silent.
 			<<link [[Play (£5 0:20)|Arcade Play]]>><<set $money -= 500>><<pass 20>><<stress -2>><</link>><<lstress>>
 			<br>
 		<</if>>
-		<<if $exposed lte 0 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and $weather is "rain" and $daystate is "day">>
+		<<if $exposed lte 0 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and $weather is "rain" or $weather is "snow" and $daystate is "day">>
 			<<if $schoolday isnot 1 or $hour lte 8 or $hour gte 15>>
 				<br>
 				You see Kylar playing on one of the cabinets.
diff --git a/game/overworld-town/loc-beach/main.twee b/game/overworld-town/loc-beach/main.twee
index 9263ea53557660a5d367582bf4245686bfe0e807..7f9c1d74dc4eb3475ca1bb8d745c0d4516331493 100644
--- a/game/overworld-town/loc-beach/main.twee
+++ b/game/overworld-town/loc-beach/main.twee
@@ -9,6 +9,8 @@ You are on the beach.
 		The clouds have driven away most would-be visitors, but there are still people strolling along the water's edge.
 	<<elseif $weather is "rain">>
 		The beach itself is mostly deserted due to the rain, but the violent waves have attracted surfers.
+	<<elseif $weather is "snow">>
+		The snow has kept most away from the beach, but hte violent waves have attracted surfers.
 	<</if>>
 <<elseif $daystate is "dawn">>
 	<<if $weather is "clear">>
@@ -17,6 +19,8 @@ You are on the beach.
 		It is a popular destination for joggers, some have dogs with them. Fog blocks your view of the ocean.
 	<<elseif $weather is "rain">>
 		The beach itself is mostly deserted due to the rain, but the violent waves have attracted surfers.
+	<<elseif $weather is "snow">>
+		The snow has kept most away from the beach, but hte violent waves have attracted surfers.
 	<</if>>
 <<elseif $daystate is "dusk">>
 	<<if $weather is "clear">>
@@ -25,6 +29,8 @@ You are on the beach.
 		It is mostly deserted, but some people are strolling along the water's edge.
 	<<elseif $weather is "rain">>
 		The beach itself is mostly deserted due to the rain, but the violent waves have attracted surfers.
+	<<elseif $weather is "snow">>
+		The snow has kept most away from the beach, but hte violent waves have attracted surfers.
 	<</if>>
 <<elseif $daystate is "night">>
 	<<if $weather is "clear">>
@@ -33,6 +39,8 @@ You are on the beach.
 		It appears deserted.
 	<<elseif $weather is "rain">>
 		It appears deserted.
+	<<elseif $weather is "snow">>
+		It appears deserted.
 	<</if>>
 <</if>>
 You could go for a swim, but make sure to dress appropriately.
@@ -51,7 +59,7 @@ You could go for a swim, but make sure to dress appropriately.
 		<<eventsbeach>>
 	<<else>>
 		<<if $exposed lte 0>>
-			<<if $scienceproject is "ongoing" and $sciencephallusknown is 1 and $sciencephallus lt 10 and $daystate isnot "night" and $weather isnot "rain" and $exposed lte 0>>
+			<<if $scienceproject is "ongoing" and $sciencephallusknown is 1 and $sciencephallus lt 10 and $daystate isnot "night" and $weather isnot "rain" and $weather isnot "snow" and $exposed lte 0>>
 				<<link [[Find participant for phallus project (0:15)|Beach Phallus]]>><<pass 15>><</link>>
 				<br>
 			<</if>>
@@ -593,11 +601,18 @@ The <<person>> leaves you. <<He>> looks dejected.
 You run along the shore.
 <<if $daystate is "night">>
 	<<if $weather is "rain">>
-		The sound of the waves crashing competes with the torrential rain.
+		The sound of crashing waves competes with the torrential rain.
 	<<elseif $weather is "clear">>
 		The cold night breeze invigorates you.
 	<<elseif $weather is "overcast">>
 		The cool night breeze feels pleasant against your skin.
+	<<elseif $weather is "snow">>
+		<<if $body_temperature is "comfy">>
+			The cold night breeze invigorates you.
+		<<else>>
+			You shiver in the freezing night breeze.
+			<<gstress>><<stress 6>>
+		<</if>>
 	<</if>>
 <<else>>
 	<<if $weather is "rain">>
@@ -607,6 +622,13 @@ You run along the shore.
 		<<tiredness 6>><<gtiredness>>
 	<<elseif $weather is "overcast">>
 		The cool weather makes for a pleasant jog.
+	<<elseif $weather is "snow">>
+		<<if $body_temperature is "comfy">>
+			Falling snow blows against your face as you job across the wet sand.
+		<<else>>
+			You shiver in the freezing wind.
+			<<gstress>><<stress 6>>
+		<</if>>
 	<</if>>
 <</if>>
 <<physique 3>><<tiredness 6>><<stress -6>>
@@ -625,6 +647,8 @@ You walk along the shore.
 		The sound of the waves fills your senses.
 	<<elseif $weather is "overcast">>
 		The night is cool and relaxes you.
+	<<elseif $weather is "snow">>
+		Dark snow blows against you as you stroll.
 	<</if>>
 <<else>>
 	<<if $weather is "rain">>
@@ -634,6 +658,8 @@ You walk along the shore.
 		<<tiredness 3>><<gtiredness>>
 	<<elseif $weather is "overcast">>
 		The cool weather makes for an enjoyable stroll.
+	<<elseif $weather is "snow">>
+		Snow blows against you as you stroll.
 	<</if>>
 <</if>>
 <<tiredness 3>><<stress -5>>
diff --git a/game/overworld-town/loc-cafe/main.twee b/game/overworld-town/loc-cafe/main.twee
index da2897959e5bbdc6a2ef5678e40074c7c5b95bbd..b941d19eeb0fbf4b970df6d0b06c8dddceda7ef9 100644
--- a/game/overworld-town/loc-cafe/main.twee
+++ b/game/overworld-town/loc-cafe/main.twee
@@ -9,6 +9,8 @@ You are in the Ocean Breeze Cafe.
 		The cafe is busy, and despite the strong winds some people are sitting outside.
 	<<elseif $weather is "rain">>
 		No one is sitting outside due to the rain, but the cafe proper is crowded.
+	<<elseif $weather is "snow">>
+		No one is sitting outside due to the cold, but the cafe proper is crowded.
 	<</if>>
 <</if>>
 <br><br>
@@ -216,7 +218,7 @@ You ask if <<he>> has any work for you. <<His>> smile broadens. "As a matter of
 <<set $NPCName[$NPCNameList.indexOf("Sam")].love = Math.clamp($NPCName[$NPCNameList.indexOf("Sam")].love, -50, 50)>>
 <<set $rng to random(1, 100)>>
 
-<<if $rng gte 81 and $weather isnot "rain">>
+<<if $rng gte 81 and $weather isnot "rain" and $weather isnot "snow">>
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 	<<if $danger gte (9900 - $allure)>>
 		<<if $worn.lower.skirt is 1>>
@@ -1358,7 +1360,7 @@ You take a seat at one of the elevated seats at the window and order a <<print _
 			<<set _photos_taken to 0>>
 			<<if $cameras_raised gte 1>>
 				<span class="pink">
-				The <<generate1>><<person1>><<person>> raises <<his>> phone and takes a photo.
+				A <<generate1>><<person1>><<person>> raises <<his>> phone and takes a photo.
 				</span>
 				<<if random (0,2) gte 1>>
 					<<He>> brings <<his>> phone to <<his>> face and grins, seemingly happy with the photo <<he>> got of your exposed <<undies>>.
@@ -1378,7 +1380,7 @@ You take a seat at one of the elevated seats at the window and order a <<print _
 
 			<<if $cameras_raised gte 2>>
 				<span class="pink">
-				The <<generate2>><<person2>><<person>> raises <<his>> phone and takes a photo.
+				A <<generate2>><<person2>><<person>> raises <<his>> phone and takes a photo.
 				</span>
 				<<if random (0,2) gte 1>>
 					<<He>> brings <<his>> phone to <<his>> face and grins, seemingly happy with the photo <<he>> got of your exposed <<undies>>.
@@ -1398,7 +1400,7 @@ You take a seat at one of the elevated seats at the window and order a <<print _
 
 			<<if $cameras_raised gte 3>>
 				<span class="pink">
-				The <<generate3>><<person3>><<person>> raises <<his>> phone and takes a photo.
+				A <<generate3>><<person3>><<person>> raises <<his>> phone and takes a photo.
 				</span>
 				<<if random (0,2) gte 1>>
 					<<He>> brings <<his>> phone to <<his>> face and grins, seemingly happy with the photo <<he>> got of your exposed <<undies>>.
@@ -1446,9 +1448,10 @@ You take a seat at one of the elevated seats at the window and order a <<print _
 			<<set $phase to 0>>
 			<<set $resting to 0>>
 			<<pass 1>>
+			<<endevent>>
 		<</link>>
 		<br>
-		<<link [[Keep your legs closed (0:01)|Cafe Coffee Flash]]>> <<pass 1>> <</link>>
+		<<link [[Keep your legs closed (0:01)|Cafe Coffee Flash]]>> <<pass 1>><<endevent>> <</link>>
 		<br>
 	<</if>>
 
@@ -1456,14 +1459,14 @@ You take a seat at one of the elevated seats at the window and order a <<print _
 		<<if $phase gt 0>>
 			<<link [[Tone it down a little (0:01)|Cafe Coffee Flash]]>>
 					<<set $phase -=1>>
-				<<pass 1>>
+				<<pass 1>><<endevent>>
 			<</link>>
 			<br>
 		<</if>>
 		<<if $phase isnot 4>>
 			<<link [[Keep your legs as they are (0:01)|Cafe Coffee Flash]]>>
 				<<set $still to 1>>
-				<<pass 1>>
+				<<pass 1>><<endevent>>
 			<</link>>
 			<br>
 		<</if>>
@@ -1474,12 +1477,12 @@ You take a seat at one of the elevated seats at the window and order a <<print _
 			<<else>>
 				<<set $phase to 0>>
 			<</if>>
-			<<pass 1>>
+			<<pass 1>><<endevent>>
 		<</link>>
 		<br>
 		<<link [[Close your legs (0:01)|Cafe Coffee Flash]]>>
 			<<set $phase to 4>>
-			<<pass 1>>
+			<<pass 1>><<endevent>>
 		<</link>>
 		<br>
 	<</if>>
@@ -1501,11 +1504,14 @@ You drink the last of your coffee and place the mug back down on the table, befo
 <<set $outside to 0>><<set $location to "cafe">><<effects>>
 
 <<if $weather is "rain">>
-You take a seat and order a fruit salad. It arrives promptly; fresh strawberries, blueberries, kiwifruit, and chunks of pineapple. It's sweet and delicious. You stare out the window at the rain-filled street, and feel comfy.
-<br><br>
+	You take a seat and order a fruit salad. It arrives promptly; fresh strawberries, blueberries, kiwifruit, and chunks of pineapple. It's sweet and delicious. You stare out the window at the rain-filled street, and feel comfy.
+	<br><br>
+<<elseif $weather is "snow">>
+	You take a seat and order a fruit salad. It arrives promptly; fresh strawberries, blueberries, kiwifruit, and chunks of pineapple. It's sweet and delicious. You stare out the window at the snowy street, and feel comfy.
+	<br><br>
 <<else>>
-You take a seat outside and order a fruit salad. It arrives promptly; fresh strawberries, blueberries, kiwifruit, and chunks of pineapple. It's sweet and delicious. You stare out over the sea, and enjoy the breeze.
-<br><br>
+	You take a seat outside and order a fruit salad. It arrives promptly; fresh strawberries, blueberries, kiwifruit, and chunks of pineapple. It's sweet and delicious. You stare out over the sea, and enjoy the breeze.
+	<br><br>
 <</if>>
 
 <<link [[Next|Ocean Breeze]]>><</link>>
@@ -1517,6 +1523,9 @@ You take a seat outside and order a fruit salad. It arrives promptly; fresh stra
 <<if $weather is "rain">>
 	You take a seat and order pancakes. They arrive soon after, along with a cup of coffee. It's tastier than anything you've had at the orphanage. You stare out the window at the rain-filled street, and feel comfy.
 	<br><br>
+<<elseif $weather is "snow">>
+	You take a seat and order pancakes. They arrive soon after, along with a cup of coffee. It's tastier than anything you've had at the orphanage. You stare out the window at the snowy street, and feel comfy.
+	<br><br>
 <<else>>
 	You take a seat and order pancakes. They arrive soon after, along with a cup of coffee. It's tastier than anything you've had at the orphanage. You stare out over the sea, and enjoy the breeze.
 	<br><br>
diff --git a/game/overworld-town/loc-compound/main.twee b/game/overworld-town/loc-compound/main.twee
index 8192bfcdc6b843c5524d34a4da227350e7ce96c0..4cf2a4a48064c1d775f96de96fee29c97a449352 100644
--- a/game/overworld-town/loc-compound/main.twee
+++ b/game/overworld-town/loc-compound/main.twee
@@ -754,6 +754,8 @@ The inside is dominated by a large lift. You see no way to operate it, but a lap
 	You push the button beside the door. Nothing happens. You push it again, and two hatches open on either side of you. Metal arms shoot out, grasping your wrists and pushing you to the ground.
 	<br><br>
 	<span class="red">INTRUDER DETECTED.</span> The alarm rings out. Someone will hear, if they haven't already.
+	<<set $compoundalarm += 1>>
+	<<set $compoundstate to 1>>
 	<br><br>
 	<<if $vaginaexist is 1 or $analdisable is "f">>
 		<<link [[Protest|Elk Compound Interior Seduce]]>><</link>>
@@ -784,7 +786,7 @@ The inside is dominated by a large lift. You see no way to operate it, but a lap
 <br><br>
 <<if $seductionrating gte $seductionrequired>>
 
-	<span class="green">"SCANNING."</span> A red light beside the door flickers. "TEST SUBJECT IDENTIFIED. BREEDING PROCEDURE INITIALISED." Another hatch opens, larger than the others. A phallic object emerges from the dark.
+	<span class="green">"SCANNING."</span> A red light beside the door flickers. "TEST SUBJECT IDENTIFIED. BREEDING PROCEDURE INITIATED." Another hatch opens, larger than the others. A phallic object emerges from the dark.
 	<br><br>
 
 	<<link [[Next|Elk Compound Machine Rape]]>><<set $molestationstart to 1>><</link>>
diff --git a/game/overworld-town/loc-danube-homes/work.twee b/game/overworld-town/loc-danube-homes/work.twee
index 34a33df28620e42c4e941ab20df84d8b9b74e1f0..07ce0b67bb93c5d5af44baee41b7a43a03e9a4dd 100644
--- a/game/overworld-town/loc-danube-homes/work.twee
+++ b/game/overworld-town/loc-danube-homes/work.twee
@@ -780,7 +780,7 @@ Startled by the collapse, the spiders flee into the darker places of the room. <
 :: Danube Tea [nobr]
 <<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
 
-The <<person>> leads you to <<his>> garden, where a table has already been set<<if $weather is "rain">>, sheltered from the rain by a white parasol<</if>>. A teapot and some cups sit there along with a plate of biscuits, and a bowl of strawberries and cream. The <<person>> takes a seat and gestures for you to do the same.
+The <<person>> leads you to <<his>> garden, where a table has already been set<<if $weather is "rain">>, sheltered from the rain by a white parasol<<elseif $weather is "snow">>, sheltered from the snow by a white parasol<</if>>. A teapot and some cups sit there along with a plate of biscuits, and a bowl of strawberries and cream. The <<person>> takes a seat and gestures for you to do the same.
 <br><br>
 
 <<if $rightarm is "bound" or $leftarm is "bound">>
diff --git a/game/overworld-town/loc-domus-homes/work.twee b/game/overworld-town/loc-domus-homes/work.twee
index 2e8be7c2a7e003728d24442b4007f19a849f70ac..55d5a844abb0a1e8746a99e9a3afaad95b9ae777 100644
--- a/game/overworld-town/loc-domus-homes/work.twee
+++ b/game/overworld-town/loc-domus-homes/work.twee
@@ -1833,6 +1833,8 @@ Stood dripping in the doorway, you're not sure if <<hes>> serious.
 <br>
 <<elseif $weather is "overcast">>
 It's empty. People are probably indoors watching the game.
+<<elseif $weather is "snow">>
+It's empty. People are probably hiding from the cold.
 <</if>>
 <br>
 You present the order slip to the <<person>> behind the counter.
@@ -2035,6 +2037,7 @@ The shopkeeper spontaneously breaks into song. Unsure what to do, you awkwardly
 	<<if $weather is "clear">>and with the sun beating down you work up quite a sweat.
 	<<elseif $weather is "rain">>and the rain beating down on you really isn't helping.
 	<<elseif $weather is "overcast">>but you manage.
+	<<elseif $weather is "snow">>and the icy ground isn't helping.
 	<</if>>
 	<br><br>
 	<<person1>>Arriving back the <<person>> hands you £5 and takes the crate.
diff --git a/game/overworld-town/loc-home/christmas.twee b/game/overworld-town/loc-home/christmas.twee
new file mode 100644
index 0000000000000000000000000000000000000000..a44899c2ab7278e9b3045b01fbf13cd6ea8242a9
--- /dev/null
+++ b/game/overworld-town/loc-home/christmas.twee
@@ -0,0 +1,218 @@
+:: Bedroom Robin Shirt Wrap [nobr]
+<<effects>>
+
+With the wrapping paper and marker in hand, you prepare Robin's shirt and shorts. You wrap them as carefully as you can. The gift has a fetching look to it once done, with Robin's name scawled across one surface.
+<br><br>
+
+You place the gift beneath the plastic tree in the main hall.
+<br><br>
+
+<<link [[Next|Bedroom]]>><</link>>
+<br>
+
+
+:: Bedroom Robin Sundress Wrap [nobr]
+<<effects>>
+
+With the wrapping paper and marker in hand, you prepare Robin's sundress. You wrap it as carefully as you can. The gift has a fetching look to it once done, with Robin's name scawled across one surface.
+<br><br>
+
+You place the gift beneath the plastic tree in the main hall.
+<br><br>
+
+<<link [[Next|Bedroom]]>><</link>>
+<br>
+
+
+:: Bedroom Robin Kimono Wrap [nobr]
+<<effects>>
+
+With the wrapping paper and marker in hand, you prepare Robin's kimono. You wrap it as carefully as you can. The gift has a fetching look to it once done, with Robin's name scawled across one surface.
+<br><br>
+
+You place the gift beneath the plastic tree in the main hall.
+<br><br>
+
+<<link [[Next|Bedroom]]>><</link>>
+<br>
+
+:: Bedroom Robin Christmas Wrap [nobr]
+<<effects>>
+
+
+With the wrapping paper and marker in hand, you prepare Robin's Christmas outfit. You wrap it as carefully as you can. The gift has a fetching look to it once done, with Robin's name scawled across one surface.
+<br><br>
+
+You place the gift beneath the plastic tree in the main hall.
+<br><br>
+
+<<link [[Next|Bedroom]]>><</link>>
+<br>
+
+:: Bedroom Orphans Clothes Wrap [nobr]
+<<effects>>
+
+You spend a lot of time sorting through the clothes, deciding who gets what. There are a lot of orphans, and you don't know them all that well, but you think you can guess their sizes.
+<br><br>
+
+Once wrapped, you make several round trips to the plastic tree in the main hall. You leave the gifts stacked in neat piles.
+<br><br>
+
+You find a piece of tape stuck to your nose.
+<br><br>
+
+<<link [[Next|Bedroom]]>><</link>>
+<br>
+
+
+:: Widgets Orphanage Christmas [widget]
+<<widget "christmas_robin_visit">><<nobr>>
+<<if $robinmissing is 1>>
+	Your eyes turn to your bedroom door, as if expecting a visitor. But no one's there.
+	<br><br>
+	
+	<<link [[Next|Bedroom]]>><</link>>
+	<br>
+<<elseif $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 60>>
+	You hear knocking on your door. But no one enters. You peek outside, and find a small object wrapped in tinfoil. There's a note attached.
+	<br><br>
+	"Merry Christmas. <span class="gold">I left something for you under the tree."</span> - Robin
+	<br><br>
+	
+	You unwrap the object. There's a cookie inside. It's doughy and sweet.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>>
+	<br><br>
+	
+	<<link [[Next|Bedroom]]>><</link>>
+	<br>
+<<elseif $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 20>>
+	<<npc Robin>><<person1>>
+	You hear a knock on your door. Robin pokes <<his>> head around the corner. "Is it okay if I come in?"
+	<br><br>
+	
+	<<He>> enters. <<He>> looks exhausted. "Merry Christmas," The orphans are celebrating. <span class="gold">I left you something under the tree."</span> <<He>> tries to smile, then places small object wrapped in tinfoil on your bed. "You should join us when you're ready."
+	<br><br>
+	
+	<<He>> leaves the room. You unwrap the object. There's a cookie inside. It's doughy and sweet.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>>
+	<br><br>
+	
+	<<link [[Next|Bedroom]]>><<endevent>><</link>>
+	<br>
+	
+<<else>>
+	<<npc Robin>><<person1>>
+	You hear a flurry of knocks on your door. Robin pokes <<his>> head inside. "Can I come in?"
+	<br><br>
+	
+	"Merry Christmas!" <<he>> says, almost skipping through the door. <<He>> places a small object wrapped in tinfoil on your bed. "The orphans hung up decorations. They're celebrating! You should join us."
+	<br><br>
+	
+	"Oh," <<he>> adds. <span class="gold">"I left you something under the tree!"</span>
+	<br><br>
+	
+	<<if $robinromance is 1>>
+		<<He>> squeezes your hand, plants a kiss on your cheek, then marches from the room.
+	<<else>>
+		<<He>> marches from the room.
+	<</if>>
+	You unwrap the object. There's a cookie inside. It's doughy and sweet.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>>
+	<br><br>
+	
+	<<link [[Next|Bedroom]]>><<endevent>><</link>>
+	<br>
+<</if>>
+<</nobr>><</widget>>
+
+<<widget "christmas_robin">><<nobr>>
+
+<<npc Robin>><<person1>><<generatey2>><<person2>>
+Robin has been busy looking after the young orphans so far. A <<person>> tugs <<his>> sleeve, and holds out a gift. "It's not from me," the <<person>> says. "I just found it under the tree."
+<br><br>
+
+Robin thanks the <<person>>, and examines the package. <<person1>><<He>> smiles and glances you. <<He>> recognised your handwriting.
+
+
+<<if $christmas_gift_robin is "shirt" and $NPCName[$NPCNameList.indexOf("Robin")].pronoun is "m" or $christmas_gift_robin is "sundress" and $NPCName[$NPCNameList.indexOf("Robin")].pronoun is "f">>
+	Excited, <<he>> tears off the wrapping paper. <<His>> smile broadens when <<he>> sees the clothes inside. <<He>> clutches the fabric to <<his>> chest, and smiles at you.<<ltrauma>><<trauma -6>>
+	<br><br>
+	
+	<<if $robinromance is 1 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 40>>
+		<<set $christmas_robin_lewd to 1>>
+		"I love it!" <<he>> says. "Thank you so much." <<He>> throws <<his>> arms around you, and whispers. <span class="gold">"Meet me in my room."</span>
+		<br><br>
+		<<He>> disappears down one of the halls, towards <<his>> room.<<ggglove>><<npcincr Robin love 10>>
+		<br><br>
+	<<else>>
+		"I love it!" <<he>> says. "Thank you so much." <<He>> disappears down one of the halls, towards <<his>> room.<<ggglove>><<npcincr Robin love 10>>
+		<br><br>
+	<</if>>
+<<elseif $christmas_gift_robin is "shirt" and $NPCName[$NPCNameList.indexOf("Robin")].pronoun is "f" or $christmas_gift_robin is "sundress" and $NPCName[$NPCNameList.indexOf("Robin")].pronoun is "m">>
+
+	Excited, <<he>> tears off the wrapping paper. <<His>> bright expression turns to confusion as <<he>> pulls out the clothing.
+	<br><br>
+
+	"I-I think you may have given me the wrong present," <<he>> says, looking unsure. "This is for <<if $NPCName[$NPCNameList.indexOf("Robin")].pronoun is "m">>girls<<else>>boys<</if>>.
+	<br><br>
+
+	<<if $submissive gte 1150>>
+		"I-I thought it'd suit you," you say.
+	<<elseif $submissive lte 850>>
+		"Try it," you say. "You'll like how it looks on you."
+	<<else>>
+		"I thought you'd look cute in it," you say.
+	<</if>>
+	<br><br>
+
+
+
+	<<if $robinromance is 1 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 40>>
+		<<set $christmas_robin_lewd to 1>>
+		Robin's eyes light up. "Really? Th-thank you." <<He>> throws <<his>> arms around you, and whispers. "Meet me in my room."
+		<br><br>
+		<<He>> disappears down one of the halls.<<ggglove>><<npcincr Robin love 10>>
+		<br><br>
+	<<elseif $NPCName[$NPCNameList.indexOf("Robin")].love gte 40 or $robinromance is 1>>
+		Robin seems embarrassed, but not upset. "Th-thanks, I guess. I'll be sure to wear it!" <<He>> disappears down one of the halls, towards <<his>> room.<<ggglove>><<npcincr Robin love 10>>
+		<br><br>
+	<<else>>
+		Robin looks conflicted. "I-I appreciate the thought. Thank you." <<He>> folds the clothes up, and returns to <<his>> room.
+		<br><br>
+	<</if>>
+
+<<elseif $christmas_gift_robin is "kimono">>
+	Excited, <<he>> tears off the wrapping paper. <<He>> smiles when <<he>> sees the fabric, but frowns as <<he>> pulls it from the packaging. You caught <<him>> off guard.
+	<br><br>
+	"T-this isn't a costume," <<he>> says, unfolding the kimono with care. "How much did you spend on this?"
+	<br><br>
+	
+		
+	<<if $robinromance is 1 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 40>>
+		<<set $christmas_robin_lewd to 1>>
+		You shrug and smile. "It's so pretty," Robin continues. "Thank you so much!" <<He>> throws <<his>> arms around you, and whispers. <span class="gold">"Meet me in my room."</span>
+		<br><br>
+		<<He>> disappears down one of the halls.<<ggglove>><<npcincr Robin love 10>>
+		<br><br>
+	<<else>>
+		You shrug and smile. "It's so pretty," Robin continues. "Thank you so much!" <<He>> holds it against <<his>> chest, and disappears down one of the halls, towards <<his>> room.<<ggglove>><<npcincr Robin love 10>>
+		<br><br>
+	<</if>>	
+<<else>>
+	Excited, <<he>> tears off the wrapping paper. <<His>> smile broadens when <<he>> sees the clothes inside. <<He>> clutches the fabric to <<his>> chest, and smiles at you.<<ltrauma>><<trauma -6>>
+	<br><br>
+	
+	<<if $robinromance is 1 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 40>>
+		<<set $christmas_robin_lewd to 1>>
+		"I love it!" <<he>> says. "It's so festive. Thank you so much." <<He>> throws <<his>> arms around you, and whispers. <span class="gold">"Meet me in my room."</span>
+		<br><br>
+		<<He>> disappears down one of the halls.<<ggglove>><<npcincr Robin love 10>>
+	<<else>>
+		"I love it!" <<he>> says. "It's so festive. Thank you so much." <<He>> disappears down one of the halls, towards <<his>> room.<<ggglove>><<npcincr Robin love 10>>
+		<br><br>
+	<</if>>	
+<</if>>
+
+<<link [[Next|Orphanage]]>><<endevent>><</link>>
+<br>
+
+
+<</nobr>><</widget>>
+
diff --git a/game/overworld-town/loc-home/event-widgets.twee b/game/overworld-town/loc-home/event-widgets.twee
index 5cd99de28c7cbddbdd167aa27dafd39c47508ba5..e32bde9ce5c3d929cda5dfe546d4e06573870b3a 100644
--- a/game/overworld-town/loc-home/event-widgets.twee
+++ b/game/overworld-town/loc-home/event-widgets.twee
@@ -14,11 +14,26 @@
 	<br>
 	"Just make sure you wrap up warm."
 	<br><br>
-	A <<person2>><<person>> runs for the main doors, and throws them open. <<His>> smile vanishes. Bailey strides in. The doors slam shut behind <<person1>><<him>>.<<lhope>><<hope -1>>
+	A <<person2>><<person>> runs for the main doors, and throws them open. <<His>> smile vanishes. Bailey strides in, and the doors slam shut.<<lhope>><<hope -1>>
 	<br><br>
 	
 	<<link [[Next|Orphanage]]>><<endevent>><</link>>
 	<br>
+<<elseif $christmas is 1 and $christmas_event is undefined>>
+	<<set $christmas_event to 1>>
+	<<generatey1>><<generatey2>>
+	You overhear two orphans.
+	<br><br>
+	"What do you think I'll get for Christmas?" A <<person1>><<person>> asks, thumbing a small object in <<his>> hand
+	<br>
+	"Bailey lets us decorate," a <<person2>><<person>> responds. "But gifts? Maybe Father Christmas will bring us something, huh?" <<He>> nudges the <<person1>><<person>>, who doesn't look convinced.
+	<br><br>
+	<i>Some new clothes would go a long way for a lot of residents. The shopping centre should do. You could pick up something for Robin at the forest shop or shopping centre as well.</i>
+	<br><br>
+	
+	<<endevent>>
+	<<link [[Next|Orphanage]]>><</link>>
+	<br>
 <<elseif $home_event_timer lte 0>><<set $home_event_timer to 6>>
 	<<switch $home_event_count>>
 	<<case 0>><<set $home_event_count += 1>>
diff --git a/game/overworld-town/loc-home/garden.twee b/game/overworld-town/loc-home/garden.twee
index 9293b375b07a81e768f3eb6a627fc9e241fe2e99..bcdefefc5c8850cd584dcc6a714afe0be3b6cf68 100644
--- a/game/overworld-town/loc-home/garden.twee
+++ b/game/overworld-town/loc-home/garden.twee
@@ -24,6 +24,14 @@ You are in the garden behind the orphanage.
 			<<elseif $mason_pond_timer gte 1>>
 				The pond is taking shape. The workers must be getting close to breaching the spring. For now, it fills with rainwater.
 			<</if>>
+		<<elseif $weather is "snow">>
+			<<if $mason_pond_timer gte 7>>
+				The snow prevents work from commencing.
+			<<elseif $mason_pond_timer gte 4>>
+				The hole in the ground is abandoned for the time being, waiting for the snow to pass.
+			<<elseif $mason_pond_timer gte 1>>
+				The pond is taking shape. The workers must be getting close to breaching the spring. For now, it fills with snow.
+			<</if>>
 		<<else>>
 			<<if $mason_pond_timer gte 6>>
 				Several workers dig.
diff --git a/game/overworld-town/loc-home/main.twee b/game/overworld-town/loc-home/main.twee
index 1e8caf1a7ef6be11ebf94eaf58b8dde88de26a39..7952c9581cb3ec4ba10c19a1b5465ee5c05ad4f9 100644
--- a/game/overworld-town/loc-home/main.twee
+++ b/game/overworld-town/loc-home/main.twee
@@ -16,6 +16,9 @@ You are in your bedroom.
 <</if>>
 <<if $stress gte 10000>>
 	<<passouthome>>
+<<elseif $christmas is 1 and $monthday is 25 and $christmas_robin_visit is undefined and $christmas_robin_gift_received is undefined and $daystate isnot "night" and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
+	<<set $christmas_robin_visit to true>>
+	<<christmas_robin_visit>>
 <<else>>
 	<<if $leftarm is "bound" or $rightarm is "bound" or $feetuse is "bound">>
 		<<link [[Undo your bindings (0:10)|Bedroom]]>><<set $unbind to 1>><<pass 10>><<unbind>><</link>>
@@ -29,6 +32,7 @@ You are in your bedroom.
 	<</if>>
 	<<projectoptions>>
 	<<roomoptions>>
+	<<christmas_options>>
 	<<if $debug is 1>>
 		/*indev radio testing*/
 		A radio is on:
@@ -901,25 +905,29 @@ You snuggle under the covers with Robin.
 
 You are in the main hall of the orphanage.
 
-<<if $daystate is "day">>
-A couple of orphans on cleaning duty sweep the floor.
-<<elseif $daystate is "dusk">>
-You hear hushed voices.
-<<elseif $daystate is "dawn">>
-	<<if $schoolday is 1>>
-	The orphans are heading off to school.
-	<<else>>
-	The orphans are leaving to find work.
+<<if $christmas is 1 and $monthday is 25 and $daystate isnot "night">>
+	The room is alive with festive merriment.
+<<else>>
+	<<if $daystate is "day">>
+	A couple of orphans on cleaning duty sweep the floor.
+	<<elseif $daystate is "dusk">>
+	You hear hushed voices.
+	<<elseif $daystate is "dawn">>
+		<<if $schoolday is 1>>
+		The orphans are heading off to school.
+		<<else>>
+		The orphans are leaving to find work.
+		<</if>>
+	<<elseif $daystate is "night">>
+	The orphans must be asleep.
 	<</if>>
-<<elseif $daystate is "night">>
-The orphans must be asleep.
 <</if>>
 
 <br><br>
 
 <<if $stress gte 10000>>
 	<<passouthome>>
-<<elseif $exposed gte 1 and $hour lt 22 and $hour gt 6>>
+<<elseif $exposed gte 1 and $hour lt 22 and $hour gte 6>>
 	You can't bear the thought of someone catching you like this. You hasten to your bedroom.
 	<br><br>
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
@@ -965,10 +973,41 @@ The orphans must be asleep.
 	<<endevent>>
 	<<link [[Next|Orphanage]]>><</link>>
 	<br>
+
 <<elseif $renttime lte 0>><<set $bus to "home">>
 	A hand rests on your shoulder from behind. It's Bailey.
 	<br><br>
 	<<rentdue>>
+<<elseif $christmas is 1 and $monthday is 25 and $christmas_gift is "clothes" and !$christmas_event_2 and $daystate isnot "night">>
+	<<set $christmas_event_2 to 1>>
+	<<pass 30>>
+	<<earnFeat "A Festive Home">>
+	The plastic tree is the centre of activity. Each orphan has at least one gift addressed to them. Unable to contain themselves, they tear through the packaging, and find the clothes you bought. Most seem happy, though one <<generatey1>><<person1>><<person>> complains. "A shirt?" <<he>> says. "That's boring. I wanted a console."
+	<br><br>
+	"Don't be ungrateful," an older <<generatey2>><<personsimple>> says. "That shirt looks nice and warm." A gust of wind blows through a gap in a faulty window as if in support.<<ggghope>><<hope 10>>
+	<br><br>
+	<<endevent>><<npc Bailey>><<person1>>
+	Bailey watches. None of the gifts seem to upset <<him>>. "Pick this mess up," <<he>> barks, gesturing at the wrapping paper strewn about. "All of you."
+	<br><br>
+	As the paper clears, Bailey sees an unclaimed gift at the base of the tree. It has <<his>> name on it. <<He>> examines it in <<his>> hands for a moment, then leaves the room with the gift held under <<his>> arm.
+	<br><br>
+	One of the newer residents smiles at the sight. The rest seem uneasy.
+	<br><br>
+	
+	<<link [[Next|Orphanage]]>><<endevent>><</link>>
+	<br>
+<<elseif $christmas is 1 and $monthday is 25 and $robinmissing isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $christmas_robin_gift_received is undefined and $hour gte 7>>
+	<<set $christmas_robin_gift_received to true>>
+	You spot a present laid under the tree with your name on it. It’s from Robin.
+	<br><br>
+	You unwrap it. It's a box of cookies. You're glad Bailey isn't around.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>>
+	<br><br>
+		
+	<<link [[Next|Orphanage]]>><</link>>
+	<br>
+<<elseif $christmas is 1 and $monthday is 25 and $robinmissing isnot 1 and $christmas_gift_robin_wrapped is 1 and $christmas_gift_robin_given is undefined and $daystate isnot "night">>
+	<<set $christmas_gift_robin_given to true>>
+	<<christmas_robin>>
 <<elseif $home_event is 1 and $hour gte 6 and $hour lte 21>>
 	<<set $home_event to 0>>
 	<<homeevent>>
@@ -996,6 +1035,10 @@ The orphans must be asleep.
 			<br>
 		<</if>>
 	<</if>>
+	<<if $christmas is 1 and $monthday is 25 and $daystate isnot "night" and $exposed lte 0>>
+		<<link [[Celebrate Christmas (1:00)|Orphanage Christmas]]>><<pass 60>><<trauma -12>><<stress -6>><</link>><<lltrauma>><<lstress>>
+		<br>
+	<</if>>
 	<<link [[Garden (0:01)|Garden]]>><<pass 1>><</link>>
 	<br><br>
 	<<link [[Bailey's Office (0:01)|Bailey's Office]]>><<pass 1>><</link>>
@@ -1024,6 +1067,102 @@ The orphans must be asleep.
 	<br>
 <</if>>
 
+:: Orphanage Handheld [nobr]
+<<effects>>
+
+/*Not in yet*/
+
+You play a fighting game. You struggle to keep up with the move list. 
+
+--
+
+You’re playing a pixelated war game. Soldiers move across the battlefield in an orderly manner. You’re all set for the bloodshed to come as you bark your orders with buttons. 
+
+--
+
+A game set in medieval times beckons you with adventure. You spend your time cutting down trees instead. 
+
+--
+
+You’re astonished at the variety of games that have been purchased on the device. You speculate that Robin didn’t want you to get bored or was unaware of what you liked. 
+
+--
+
+
+You play a sports game. One of the players on your team suffers a career-ending injury. 
+
+--
+
+You bash and claw at your opponents in a fighting game, leaving you the victor in a tournament ladder. 
+
+--
+
+A horror game pits you against yourself. You do well to keep your sanity in an abandoned city. 
+
+--
+
+An overarching RPG leaves you a bit confused. You ponder whether you’re making the correct choices with an odd cast of characters. 
+
+--
+
+
+An arcade-style hack and slash occupy your time. An entire horde of orcs is no match for your divine strength loaned to you by the Gods. 
+
+--
+
+In a fighting game, you frustratingly try to learn a decent combo on a character. It takes some time, but you think you’ve got it figured out. 
+
+--
+
+A first-person shooter’s story leaves you pondering about your character’s actions. You ignore the implications and continue charging through the arenas. 
+
+--
+
+You find an easter egg in one of your games. The developer thanks you for playing. 
+
+--
+
+No soldier is a match for your unstoppable onslaught. Cheater. 
+
+
+:: Orphanage Christmas [nobr]
+<<effects>>
+
+You celebrate Christmas with the other residents.
+<<set $rng to random(1, 100)>>
+<<if $hour gte 20>>
+	They begin to take down decorations as the day comes to a close. 
+<<else>>
+	<<if $rng gte 91>>
+		Freshly baked cookies are passed around. You take one for yourself.<<lstress>><<stress -6>>
+	<<elseif $rng gte 81>>
+		Some chat about how cold it is outside. You can't help but agree.
+	<<elseif $rng gte 71>>
+		A <<generatey1>><<person1>><<person>> passes a gift to a <<person2>><<person>>. <<He>> look delighted, but is patient enough to resist unwrapping it on the spot.
+	<<elseif $rng gte 61>>
+		Robin passes out small bags of snacks. A <<generatey1>><<person1>><<person>> keeps watch for Bailey.
+	<<elseif $rng gte 51>>
+		Some of the tinsel decorations have fallen to the floor, so you put them back in place.
+	<<elseif $rng gte 41>>
+		Some complain about how chilly the orphanage is. <<generatey1>><<person1>>A <<person>> wants to ask Bailey to turn up the heat, but the others dissuade <<him>>.
+	<<elseif $rng gte 31>>
+		They're loud and joyous.
+	<<elseif $rng gte 21>>
+		Someone snuck in some advocaat.
+	<<elseif $rng gte 11>>
+		A <<generatey1>><<person1>><<person>> received an expensive, electronic gift from an unknown party. <<He>> catches a lot of jealousy.
+	<<else>>
+		The hall is filled with mirth.
+	<</if>>
+<</if>>
+<br><br>
+<<endevent>>
+<<link [[Next|Orphanage]]>><</link>>
+<br>
+
+
+
+
 :: Orphanage Hide [nobr]
 
 <<set $outside to 0>><<set $location to "home">><<effects>>
diff --git a/game/overworld-town/loc-museum/bdsm.twee b/game/overworld-town/loc-museum/bdsm.twee
index 983fcd63586c36b1c22d846f15ef38b1c3bd70d0..576ed6117696890f63cced8dd98c8e6add4a527c 100644
--- a/game/overworld-town/loc-museum/bdsm.twee
+++ b/game/overworld-town/loc-museum/bdsm.twee
@@ -350,7 +350,7 @@ That was terrifying, <span class="green">yet you feel a strong catharsis.</span>
 :: Museum Duck Extreme End [nobr]
 <<effects>>
 
-River leans hard on the lever, and pulls you back over the earth. <<He>> rushes over to steady the chair and unbind you as applause erupts around <<him>>.
+Winter leans hard on the lever, and pulls you back over the earth. <<He>> rushes over to steady the chair and unbind you as applause erupts around <<him>>.
 <br><br>
 
 "That ends our demonstration," <<he>> says. "Thank you for attending. We hope you found it informative, and we invite you to visit the museum. The address is on the booklets we handed out. It's right over there." <<He>> points. "Last but not least, let's have another round of applause for our star." <<He>> gestures at you. The applause renews, though you feel eyes exploring your wet body.
diff --git a/game/overworld-town/loc-park/main.twee b/game/overworld-town/loc-park/main.twee
index ee3d8996f4373550279a18c5c1d028048af1de6b..57ad1721a1d3533c177a7b5dabbddc6640e35f1a 100644
--- a/game/overworld-town/loc-park/main.twee
+++ b/game/overworld-town/loc-park/main.twee
@@ -277,7 +277,7 @@ The dog whimpers and flees into a bush. <<tearful>> you gather yourself.
 		<br><br>
 		<<link [[Next|Park]]>><<set $eventskip to 1>><</link>>
 	<<elseif $rng gte 41>>
-		<<if $weather is "rain">> /*10% chance if running naked in the park at night during rain.*/
+		<<if $weather is "rain" or $weather is "snow">> /*10% chance if running naked in the park at night during rain or snow.*/
 			As you pass <<print either("near a storm-drain","the bridge over the lake","the lake","some trees by the lake","some bushes by the storm-drain")>>
 			something grabs your leg, dragging you down.
 			<<if $bestialitydisable is "f">>
diff --git a/game/overworld-town/loc-park/run.twee b/game/overworld-town/loc-park/run.twee
index d1ed0bb671322379a1d80a6ad2a1ebf0cf6fc1b5..c98ab5e37e2d958ac50fc024cbc45bcb62ab0fbc 100644
--- a/game/overworld-town/loc-park/run.twee
+++ b/game/overworld-town/loc-park/run.twee
@@ -5,6 +5,8 @@
 <<if $daystate is "night">>
 	<<if $weather is "rain">>
 	You run through the deserted park. Cold rain assails you.
+	<<elseif $weather is "snow">>
+	You run through the deserted park. Cold night air caresses your skin.
 	<<else>>
 	You run through the deserted park. The cool night air caresses your skin.
 	<</if>>
@@ -36,7 +38,7 @@
 			<</if>>You run by.
 		<<elseif $rng gte 11>>
 			<br><br>
-			In a secluded part of the park, you enter a clearing. A large group of people stand <<if $weather is "rain">>naked in the pounding rain<<else>>half-naked in silence<</if>> surrounding some kind of altar.
+			In a secluded part of the park, you enter a clearing. A large group of people stand <<if $weather is "rain">>naked in the pounding rain<<elseif $weather is "snow">>half-naked despite the cold,<<else>>half-naked in silence<</if>> surrounding some kind of altar.
 			All eyes fix on you.
 			<br>
 			You speed up and run quickly by.
@@ -504,9 +506,11 @@ Your heart is pounding with the thrill as you quietly move on.
 
 <<if $daystate is "night">>
 	<<if $weather is "rain">>
-	You _exercise in the deserted park, stepping in puddles as cold rain pours.
+		You _exercise in the deserted park, stepping in puddles as cold rain pours.
+	<<elseif $weather is "snow">>
+		You _exercise in the deserted park, careful not to slip on the ice.
 	<<else>>
-	You _exercise in the deserted park. The cool night air caresses your skin.
+		You _exercise in the deserted park. The cool night air caresses your skin.
 	<</if>>
 	<<physique 1>>
 	<br><br>
@@ -514,9 +518,13 @@ Your heart is pounding with the thrill as you quietly move on.
 	<br>
 <<else>>
 	<<if $weather is "rain">>
-	You _exercise in the nearly-deserted park.
+		You _exercise in the nearly-deserted park.
+	<<elseif $weather is "snow">>
+		You _exercise in the park as snow falls all around.
+	<<elseif $weather is "overcast">>
+		You _exercise in the park. It feels good to feel the air on your skin.
 	<<else>>
-	You _exercise in the park. It feels good to feel the air and sunshine on your skin.
+		You _exercise in the park. It feels good to feel the air and sunshine on your skin.
 	<</if>>
 	<<physique 1>>
 
diff --git a/game/overworld-town/loc-school/classes/swimming.twee b/game/overworld-town/loc-school/classes/swimming.twee
index f11d2227e7373e8f129f8635e8e44a58693c1ab7..97ddb33972edc7cbc53068c3ef706a8737d0fc59 100644
--- a/game/overworld-town/loc-school/classes/swimming.twee
+++ b/game/overworld-town/loc-school/classes/swimming.twee
@@ -53,9 +53,9 @@
 			<br>
 		<</if>>
 		<<if $schoolstate is "fifth" and $swimnudecounter gte 1>>
-			<<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
+			<<maleicon>><<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
 			<br>
-			<<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
+			<<femaleicon>><<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
 			<br>
 		<</if>>
 
@@ -125,9 +125,9 @@
 			<br>
 		<</if>>
 		<br>
-		<<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
+		<<maleicon>><<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
 		<br>
-		<<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
+		<<femaleicon>><<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
 		<br><br>
 	<</if>>
 
@@ -144,9 +144,9 @@
 		<br><br>
 		<<detention 1>>
 
-		<<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
+		<<maleicon>><<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
 		<br>
-		<<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
+		<<femaleicon>><<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
 		<br>
 	<<else>>
 		<<npc Mason>><<person1>>
@@ -168,9 +168,9 @@
 
 	<<exhibitionclassroom>>
 
-	<<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
+	<<maleicon>><<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
 	<br>
-	<<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
+	<<femaleicon>><<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
 	<br>
 <</if>>
 
@@ -379,9 +379,9 @@ You speak in a low voice, so only the teacher will hear you.
 	<</if>>
 <</if>>
 
-<<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
+<<maleicon>><<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
 <br>
-<<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
+<<femaleicon>><<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
 <br>
 
 :: School Pool Spare [nobr]
@@ -457,9 +457,9 @@ You speak in a low voice, so only the teacher will hear you.
 Embarrassed, you apologise and leave.
 <br><br>
 
-<<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
+<<maleicon>><<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
 <br>
-<<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
+<<femaleicon>><<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
 <br>
 
 :: Swimming Classroom Mock [nobr]
@@ -473,9 +473,9 @@ Mason also blushes. "I-I'll pretend I didn't hear that." <<He>> points to the ch
 <<gdelinquency>>
 <br><br>
 <<detention 1>><<npcincr Mason love -1>>
-<<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
+<<maleicon>><<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
 <br>
-<<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
+<<femaleicon>><<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
 <br>
 
 :: School Pool Nude [nobr]
@@ -594,9 +594,9 @@ You manage to get beneath the flimsy protection of the water, but not before the
 		<<pass 1>>
 	<</if>>
 	<<if $exposed lte 0>>
-		<<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
+		<<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
 		<br>
-		<<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
+		<<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
 		<br><br>
 	<<elseif $exposed gte 1>>
 		<<link [[Grab some towels and enter the boy's changing room|School Boy Changing Room]]>><<towelupm>><</link>>
@@ -695,9 +695,9 @@ Mason seems displeased by your choice of activity.
 	<</if>>
 
 	<<if $exposed lte 0>>
-		<<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
+		<<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
 		<br>
-		<<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
+		<<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
 		<br><br>
 	<<elseif $exposed gte 1>>
 		<<link [[Grab some towels and enter the boy's changing room|School Boy Changing Room]]>><<towelupm>><</link>>
@@ -779,9 +779,9 @@ Mason seems displeased by your choice of activity.
 	<</if>>
 
 	<<if $exposed lte 0>>
-		<<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
+		<<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
 		<br>
-		<<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
+		<<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
 		<br><br>
 	<<elseif $exposed gte 1>>
 		<<link [[Grab some towels and enter the boy's changing room|School Boy Changing Room]]>><<towelupm>><</link>>
@@ -867,9 +867,9 @@ Mason seems displeased by your choice of activity.
 		<<pass 1>>
 	<</if>>
 	<<if $exposed lte 0>>
-		<<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
+		<<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
 		<br>
-		<<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
+		<<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
 		<br><br>
 	<<elseif $exposed gte 1>>
 		<<link [[Grab some towels and enter the boy's changing room|School Boy Changing Room]]>><<towelupm>><</link>>
diff --git a/game/overworld-town/loc-school/hallways.twee b/game/overworld-town/loc-school/hallways.twee
index 9ebb9557fbf974085c02a82fe556afa4779092ab..04461f96f87512c4a9c959737026b12b8c2d85bf 100644
--- a/game/overworld-town/loc-school/hallways.twee
+++ b/game/overworld-town/loc-school/hallways.twee
@@ -113,7 +113,7 @@ Facilities
 	<br>
 	<<if $schoolstate is "afternoon" and $detention gte 1 and $detentionattended isnot 1>>
 	<<else>>
-	<<ind>><<link [[Head's Office (0:02)|Head's Office]]>><<pass 2>><</link>>
+	<<headdeskicon>><<link [[Head's Office (0:02)|Head's Office]]>><<pass 2>><</link>>
 	<br>
 	<</if>>
 	<<toileticon>><<link [[Toilets (0:02)|School Toilets]]>><<pass 2>><</link>>
@@ -737,7 +737,7 @@ You turn toward the <<person>>. You begin to strip. <<He>> gawks as you discard
 
 "Fuck me." you say.
 
-<<He>> steps closer, and reaches out to grope. You feel the slime urge you moan.
+<<He>> steps closer, and reaches out to grope. You feel the slime urge you to moan.
 <br><br>
 The <<person>> becomes more aggressive.
 <br><br>
diff --git a/game/overworld-town/loc-school/library.twee b/game/overworld-town/loc-school/library.twee
index f1efd64810c140a2ef33b5057931759361f058de..4858e200a0fb88e7b7f5776d16a49b91d722355e 100644
--- a/game/overworld-town/loc-school/library.twee
+++ b/game/overworld-town/loc-school/library.twee
@@ -52,7 +52,7 @@ Next to it is a small basket with returned and not yet sorted books.
 			<br><br>
 
 		<</if>>
-		<<if $exposed lte 0 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and $weather is "rain" and $schoolstate is "lunch" and $luncheaten is 1>>
+		<<if $exposed lte 0 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch" and $luncheaten is 1>>
 		Kylar sits at a desk, scribbling something.
 		<br>
 		<<link [[Approach|Kylar Library]]>><</link>>
diff --git a/game/overworld-town/loc-school/main.twee b/game/overworld-town/loc-school/main.twee
index db39211a52d6a21d1dd12d18f3cd34916ee30120..5366c566d1998819961e49f2cadddefa94a07548 100644
--- a/game/overworld-town/loc-school/main.twee
+++ b/game/overworld-town/loc-school/main.twee
@@ -119,7 +119,7 @@ The front playground is empty.
 
 		<<else>>
 
-			<<if $exposed lte 0 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and $weather isnot "rain" and $schoolstate is "lunch">>
+			<<if $exposed lte 0 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and $weather isnot "rain" and $weather isnot "snow" and $schoolstate is "lunch">>
 			Kylar sits on a stump and stares at the ground.
 				<br>
 				<<link [[Approach|Kylar Playground]]>><</link>>
@@ -185,10 +185,10 @@ You are outside the school changing rooms. You need to pass through them to acce
 
 <</if>>
 
-<<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
+<<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
 <br>
 
-<<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
+<<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
 <br><br>
 
 <<if $schoolstate isnot 0 and $schoollesson is 1>>
diff --git a/game/overworld-town/loc-school/school-project-widgets.twee b/game/overworld-town/loc-school/school-project-widgets.twee
index e72173f78568c07e4b103a7cedd518ea81d4edd6..366e025aeea6bb4a4a6ab04b1018b190a5cdc8e2 100644
--- a/game/overworld-town/loc-school/school-project-widgets.twee
+++ b/game/overworld-town/loc-school/school-project-widgets.twee
@@ -146,4 +146,4 @@ Your face is covered, but the tears are unmistakable.
 <</if>>
 <br><br>
 
-<</nobr>><</widget>>
\ No newline at end of file
+<</nobr>><</widget>>
diff --git a/game/overworld-town/loc-school/toilets.twee b/game/overworld-town/loc-school/toilets.twee
index 444ddc8243036dae33e12a235623f8b3db0842ef..bcf1e782b701986ad143c4b003b5a0f1c72c08de 100644
--- a/game/overworld-town/loc-school/toilets.twee
+++ b/game/overworld-town/loc-school/toilets.twee
@@ -6,9 +6,9 @@ You are in the antechamber outside the school toilets.
 <<if $stress gte 10000>>
 	<<link [[Everything fades to black...|School Passout]]>><</link>>
 <<else>>
-	<<link [[Boy's Toilets|School Boy's Toilets]]>><</link>>
+	<<maleicon>><<link [[Boy's Toilets|School Boy's Toilets]]>><</link>>
 	<br>
-	<<link [[Girl's Toilets|School Girl's Toilets]]>><</link>>
+	<<femaleicon>><<link [[Girl's Toilets|School Girl's Toilets]]>><</link>>
 	<br><br>
 	<<if $historytrait gte 2 and $schooldrainintro isnot 1>>
 		<<link [[Secret tunnel to drain system (0:02)|School Drain]]>><<pass 2>><</link>>
diff --git a/game/overworld-town/loc-school/widgets.twee b/game/overworld-town/loc-school/widgets.twee
index ea27c0c93f5a3722b32faa2747143cb2def9a078..83ef63c0c7c8b2c8666da3be31947a1dcf15b92a 100644
--- a/game/overworld-town/loc-school/widgets.twee
+++ b/game/overworld-town/loc-school/widgets.twee
@@ -128,23 +128,23 @@ Your swimming lesson started at <<if $timestyle is "ampm">>2:00 pm<<else>>14:00<
 <<if $exposed gte 2>>
   <<if $player.gender_appearance is "m">>
 	<<if $exhibitionism gte 75>>
-	<<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>><<exhibitionist5>>
+	<<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>><<exhibitionist5>>
 	<br>
 	<</if>>
-  <<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
+  <<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
   <br>
   <<else>>
 	<<if $exhibitionism gte 75>>
-	<<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>><<exhibitionist5>>
-	<br>
+		<<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>><<exhibitionist5>>
+		<br>
 	<</if>>
-  <<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
+  <<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
   <br>
   <</if>>
 <<else>>
-<<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
+<<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
 <br>
-<<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
+<<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
 <br>
 <</if>>
 
@@ -1986,9 +1986,9 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 	<br><br>
 	Mason refuses to look at you. <<Hes>> blushing. "Get back in the changing room. P-please."
 	<br><br>
-	<<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
+	<<maleicon>><<link [[Boy's changing room|School Boy Changing Room]]>><<endevent>><</link>>
 	<br>
-	<<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
+	<<femaleicon>><<link [[Girl's changing room|School Girl Changing Room]]>><<endevent>><</link>>
 	<br>
 <</if>>
 <</nobr>><</widget>>
@@ -2046,10 +2046,10 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 	<</if>>
 
 	<<if $exposed lte 0 or $swimall is 1>>
-		<<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
+		<<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
 		<br>
 
-		<<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
+		<<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
 		<br><br>
 	<</if>>
 
diff --git a/game/overworld-town/loc-sea/main.twee b/game/overworld-town/loc-sea/main.twee
index eca657abc8ac7080145b4290130d18604faa53af..b4b8347f95c41c8693f0cf3fad6b14e97acd332d 100644
--- a/game/overworld-town/loc-sea/main.twee
+++ b/game/overworld-town/loc-sea/main.twee
@@ -9,6 +9,8 @@ You are swimming in the sea along the beach.
 		The clouds have driven away most would-be visitors, but there are still people strolling along the water's edge.
 	<<elseif $weather is "rain">>
 		The beach itself is mostly deserted due to the rain, but the violent waves have attracted surfers.
+	<<elseif $weather is "snow">>
+		The cold has kept most away, but the violent waves have attracted surfers.
 	<</if>>
 <<elseif $daystate is "dawn">>
 	<<if $weather is "clear">>
@@ -17,6 +19,8 @@ You are swimming in the sea along the beach.
 		It is a popular destination for joggers, some have dogs with them. Fog blocks your view of the ocean.
 	<<elseif $weather is "rain">>
 		The beach itself is mostly deserted due to the rain, but the violent waves have attracted surfers.
+	<<elseif $weather is "snow">>
+		The cold has kept most away, but the violent waves have attracted surfers.
 	<</if>>
 <<elseif $daystate is "dusk">>
 	<<if $weather is "clear">>
@@ -25,6 +29,8 @@ You are swimming in the sea along the beach.
 		It is mostly deserted, but some people are strolling along the water's edge.
 	<<elseif $weather is "rain">>
 		The beach itself is mostly deserted due to the rain, but the violent waves have attracted surfers.
+	<<elseif $weather is "snow">>
+		The cold has kept most away, but the violent waves have attracted surfers.
 	<</if>>
 <<elseif $daystate is "night">>
 	<<if $weather is "clear">>
@@ -33,6 +39,8 @@ You are swimming in the sea along the beach.
 		It appears deserted.
 	<<elseif $weather is "rain">>
 		It appears deserted.
+	<<elseif $weather is "snow">>
+		It appears deserted
 	<</if>>
 <</if>>
 <br><br>
@@ -84,12 +92,16 @@ You are swimming in the sea near some rocks, west of the beach.
 <<if $daystate is "night">>
 	<<if $weather is "rain">>
 		The dark water is hammered by rain all around you.
+	<<elseif $weather is "snow">>
+		Dark water devours the falling snow.
 	<<else>>
 		The water is dark and foreboding.
 	<</if>>
 <<else>>
 	<<if $weather is "rain">>
 		The surface is agitated by the deluge of rain.
+	<<elseif $weather is "snow">>
+		Snow settles on the dryer areas.
 	<<else>>
 		The water is calm and clear.
 	<</if>>
@@ -364,12 +376,16 @@ You are swimming in the sea near the docks, east of the beach.
 <<if $daystate is "night">>
 	<<if $weather is "rain">>
 		The dark water is hammered by rain all around you.
+	<<elseif $weather is "snow">>
+		Dark water devours snow all around you.
 	<<else>>
 		The water is dark and foreboding.
 	<</if>>
 <<else>>
 	<<if $weather is "rain">>
 		The surface is agitated by the deluge of rain.
+	<<elseif $weather is "snow">>
+		The docks bustle with activity, workers wrapped warm against the cold.
 	<<else>>
 		The docks bustle with activity. The water is calm and clear.
 	<</if>>
@@ -412,12 +428,16 @@ You are swimming in the sea at the base of some cliffs, east of the docks. A lar
 <<if $daystate is "night">>
 	<<if $weather is "rain">>
 		The dark water is hammered by rain all around you.
+	<<elseif $weather is "snow">>
+		Dark water devours the snow.
 	<<else>>
 		The water is dark and foreboding.
 	<</if>>
 <<else>>
 	<<if $weather is "rain">>
 		The surface is agitated by the deluge of rain.
+	<<elseif $weather is "snow">>
+		The water is calm beneath the snowy sky.
 	<<else>>
 		The water is calm and clear.
 	<</if>>
diff --git a/game/overworld-town/loc-sea/widgets.twee b/game/overworld-town/loc-sea/widgets.twee
index e25c4bb5685878c3c433bf6ce12836a038d290ac..7f253feff986af9fa0936696d46be676d4e3dece 100644
--- a/game/overworld-town/loc-sea/widgets.twee
+++ b/game/overworld-town/loc-sea/widgets.twee
@@ -15,7 +15,7 @@
 		<<sea2>>
 	<</if>>
 
-<<elseif $daystate isnot "night" and $weather is "rain">>
+<<elseif $daystate isnot "night" and ($weather is "rain" or $weather is "snow")>>
 
 	<<if $rng gte 96>>
 		<<sea1>>
diff --git a/game/overworld-town/loc-shop/clothing.twee b/game/overworld-town/loc-shop/clothing.twee
index 317a3ce254d7ebf8779ef340b6707f4252d6cdc2..8306fc100ad30efe9f984cda32afb0d8931cc024 100644
--- a/game/overworld-town/loc-shop/clothing.twee
+++ b/game/overworld-town/loc-shop/clothing.twee
@@ -28,7 +28,8 @@ You are in the clothing shop. It has a large selection of ordinary clothes, but
 			You are hiding within a clothing stand to protect your dignity.
 			<br><br>
 		<</if>>
-
+		<<warmth_description>>
+		<br><br>
 		<<if $debug is 1>>
 			<img id="icon" src="img/misc/icon/clothes/categories/overoutfit.png">
 			[[View over outfits|Over Outfit Shop]]
diff --git a/game/overworld-town/loc-shop/main.twee b/game/overworld-town/loc-shop/main.twee
index 87fcc0b248f9fddbf0ca6f05a5b59fac23cba820..e09d7cee62165db9562ac8e75b455863d60ecb70 100644
--- a/game/overworld-town/loc-shop/main.twee
+++ b/game/overworld-town/loc-shop/main.twee
@@ -458,9 +458,32 @@ Their bodies shudder in unison as they reach orgasm.
 			<br>
 		<<else>>
 			<<if $edenshopping is 0 and $money gte 5000>>
-				<<link [[Buy Eden's supplies (0:30) (£50)|Eden Supplies]]>><<pass 30>><<set $money -= 5000>><</link>>
+				<<link [[Buy Eden's supplies (0:30 £50)|Eden Supplies]]>><<pass 30>><<set $money -= 5000>><</link>>
 				<br>
 			<</if>>
+			<<if $christmas_gift is undefined and $christmas is 1>>
+				<<if $money gte 10000>>
+					<<link [[Buy gifts for the orphans (0:40 £100)|Shop Gifts]]>><<pass 40>><<set $money -= 10000>><<set $christmas_gift to "clothes_unwrapped">><</link>>
+					<br>
+				<<else>>
+					You could buy gifts for the orphans here, <span class="blue">if you had more money.</span>
+					<br><br>
+				<</if>>
+			<</if>>
+			<<if $christmas_gift_robin is undefined and $christmas is 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
+				<<link [[Find a gift for Robin (0:10)|Shop Robin Gift]]>><<pass 10>><</link>>
+				<br>
+			<</if>>
+			<<if ($christmas_gift_robin isnot undefined or $christmas_gift isnot undefined) and $christmas_wrap is undefined>>
+				<<if $money gte 1000>>
+				<<link [[Buy wrapping paper (0:10 £10)|Shop Paper]]>><<pass 10>><<set $money -= 1000>><<set $christmas_wrap to 1>><</link>>
+				<br>
+				<<else>>
+					<br>
+					<span class="blue">You'll need £10 for wrapping paper.</span>
+					<br><br>
+				<</if>>
+			<</if>>
 			<<hairdressericon>><<link [[Hairdressers (0:01)|Hairdressers]]>><<pass 1>><</link>>
 			<br>
 			<<petshopicon>><<link [[Pet Shop (0:01)|Pet Shop]]>><<pass 1>><</link>>
@@ -480,6 +503,101 @@ Their bodies shudder in unison as they reach orgasm.
 	<</if>>
 <</if>>
 
+
+:: Shop Gifts [nobr]
+<<effects>>
+
+You pass a sweet shop. You know the orphans would love that, but Bailey wouldn't allow it. Instead, you enter a clothing shop and gather garments in various sizes. You'll work out who's getting what later. You bring them to the register.
+<br><br>
+
+"My!" the clerk says. "Are you donating these?"
+<br>
+<<if $submissive gte 1150>>
+	"Y-yes," you say. "Kind of." You pay the required amount.
+<<elseif $submissive lte 850>>
+	"No," you say. "Well, yeah. Kinda." You pay the required amount.
+<<else>>
+	"Something like that," you smile. You pay the required amount.
+<</if>>
+<br><br>
+The clerk thanks you. You leave the shop with several full bags. <<if $christmas_wrap is undefined>>Now you just need wrapping paper.<<else>>You can wrap it in your room.<</if>>
+<br><br>
+
+<<link [[Next|Shopping Centre]]>><</link>>
+<br>
+
+:: Shop Paper [nobr]
+<<effects>>
+
+You buy several tubes of wrapping paper. That should cover everything. You can wrap your gifts in your bedroom.
+<br><br>
+
+<<link [[Next|Shopping Centre]]>><</link>>
+<br>
+
+:: Shop Robin Gift [nobr]
+<<effects>>
+
+You walk between shops, looking for something Robin would like. You find a few items you think would work.
+<br><br>
+<<if $money gte 1500>>
+	<<if $NPCName[$NPCNameList.indexOf("Robin")].pronoun is "m">>
+		<<link [[Shirt and shorts (Sensible £15)|Shop Robin Shirt]]>><<set $christmas_gift_robin to "shirt_unwrapped">><<set $money -= 1500>><</link>>
+		<br>
+		<<link [[Sundress (Sensible £15)|Shop Robin Sundress]]>><<set $christmas_gift_robin to "sundress_unwrapped">><<set $money -= 1500>><</link>> <i>Robin might need some convincing to wear this.</i>
+		<br>
+	<<else>>
+		<<link [[Sundress (Sensible £15)|Shop Robin Sundress]]>><<set $christmas_gift_robin to "sundress_unwrapped">><<set $money -= 1500>><</link>> 
+		<br>
+		<<link [[Shirt and shorts (Sensible £15)|Shop Robin Shirt]]>><<set $christmas_gift_robin to "shirt_unwrapped">><<set $money -= 1500>><</link>> <i>Robin might need some convincing to wear this.</i>
+		<br>
+	<</if>>
+	<<if $money gte 14000>>
+		<<link [[Kimono (Exotic £140)|Shop Robin Kimono]]>><<set $christmas_gift_robin to "kimono_unwrapped">><<set $money -= 14000>><</link>>
+		<br>
+	<<else>>
+		<br>
+		There's another, more exotic item for sale, but you can't afford it right now.
+		<br><br>
+	<</if>>
+	<<link [[Leave|Shopping Centre]]>><</link>>
+	<br>
+<<else>>
+	Unfortunately, you can't afford anything right now.
+	<br><br>
+	<<link [[Next|Shopping Centre]]>><</link>>
+	<br>
+<</if>>
+
+:: Shop Robin Shirt [nobr]
+<<effects>>
+
+You buy the shirt and baggy shorts. You think Robin will like them. <<if $christmas_wrap is undefined>>Now you just need wrapping paper.<<else>>You can wrap it in your room.<</if>>
+<br><br>
+
+<<link [[Next|Shopping Centre]]>><</link>>
+<br>
+
+
+:: Shop Robin Sundress [nobr]
+<<effects>>
+
+You buy the sundress. You think Robin will like it. <<if $christmas_wrap is undefined>>Now you just need wrapping paper.<<else>>You can wrap it in your room.<</if>>
+<br><br>
+
+<<link [[Next|Shopping Centre]]>><</link>>
+<br>
+
+
+:: Shop Robin Kimono [nobr]
+<<effects>>
+
+You buy the kimono. You think Robin will like it. <<if $christmas_wrap is undefined>>Now you just need wrapping paper.<<else>>You can wrap it in your room.<</if>>
+<br><br>
+
+<<link [[Next|Shopping Centre]]>><</link>>
+<br>
+
 :: Shopping Centre Entrance Sneak [nobr]
 <<set $outside to 0>><<effects>><<set $lock to 100>>
 
diff --git a/game/overworld-town/loc-shop/widgets.twee b/game/overworld-town/loc-shop/widgets.twee
index 9adb157b212b5307a4318b94a4c50fd77b644902..0f80bce0ecc5e1968c9aa0d3aba8242a69c993cb 100644
--- a/game/overworld-town/loc-shop/widgets.twee
+++ b/game/overworld-town/loc-shop/widgets.twee
@@ -91,6 +91,8 @@ Forth argument - item index*/
 		<span class="pink">For girls.</span>
 	<</if>>
 	<<print _temp_choice.description>> Costs <span class="gold">£<<print _temp_choice.cost / 100>>.</span>
+	<br>
+	<<warmth _temp_choice.warmth>>
 	<br><br>
 	<<shoptraits>>
 	<<set _slimeSlots to ["over_upper","over_lower","upper","lower","under_upper","under_lower"]>>
@@ -162,6 +164,8 @@ Forth argument - item index*/
 				<</if>>
 			<</for>>
 		<</if>>
+	<<warmth_description>>
+	<br><br>
 		<<shopBuyItemStatus _wardrobeSlots>>
 		<<if _spaceLeft lt 1>>
 			<span class="blue">Your wardrobe is full.</span>
@@ -374,6 +378,10 @@ Fashionable - Increases the rate status improves at school, but some teachers ma
 Swimwear - Fares well underwater.
 <br>
 <</if>>
+<<if _temp_choice.type.includes("diving")>>
+Diving - Helps keep you warm in cold water.
+<br>
+<</if>>
 <<if _temp_choice.type.includes("dance")>>
 Dance - Flexible enough to withstand the rigours of the dance floor.
 <br>
diff --git a/game/overworld-town/loc-spa/work.twee b/game/overworld-town/loc-spa/work.twee
index 56f33a5b031a18a52648170aaf2e10c5b15dcd0b..cdadaf43292bc25f07d481f792254cfe2e46d136 100644
--- a/game/overworld-town/loc-spa/work.twee
+++ b/game/overworld-town/loc-spa/work.twee
@@ -480,7 +480,7 @@ You sit on the stool in the corner, and lean against the wall to rest your eyes.
 	<</if>>
 	<br><br>
 
-	<<He>> nods, half awake, and climbs to <<his>> feet. You look away, and pass <<him>> <<his>> towel. <<tipreceive>><<pass 50>>
+	<<He>> nods, half awake, and climbs to <<his>> feet. You look away, and pass <<his>> towel. <<tipreceive>><<pass 50>>
 	<br><br>
 
 	<<spa_end>>
diff --git a/game/overworld-town/loc-street/barb.twee b/game/overworld-town/loc-street/barb.twee
index 179289976fb899dc00bb350f6d3e00d57c82c949..56942785a39f16fb1a9a10b062d0bfbe03853b60 100644
--- a/game/overworld-town/loc-street/barb.twee
+++ b/game/overworld-town/loc-street/barb.twee
@@ -5,6 +5,8 @@ You are on Barb Street. Silver blocks of flats tower all around you. You can hea
 <<if $daystate is "day">>
 	<<if $weather is "rain">>
 		The few braving the rain walk quickly.
+	<<elseif $weather is "snow">>
+		Pedestrians fill the pavements, walking brisk against the cold.
 	<<else>>
 		Pedestrians fill the pavements, but the sound of traffic dominates.
 	<</if>>
@@ -50,20 +52,20 @@ You are on Barb Street. Silver blocks of flats tower all around you. You can hea
 		Places of Interest
 		<br>
 		<<if $openinghours is 1>>
-			<<link [[Dance Studio (0:01)|Dance Studio]]>><<pass 1>><</link>>
+			<<dancestudioicon>><<link [[Dance Studio (0:01)|Dance Studio]]>><<pass 1>><</link>>
 			<br>
 		<<elseif $hour is $closinghour>>
 			<span class="blue">People are leaving the dance studio.</span> It must be closing time.
 			<br>
 		<<else>>
-			<<link [[Dance Studio|Dance Studio Lock]]>><</link>>
+			<<dancestudioicon>><<link [[Dance Studio|Dance Studio Lock]]>><</link>>
 			<br>
 		<</if>>
 		<<if $exposed lte 0>>
 			<<policeicon>><<link [[Police Station (0:02)|Police Station]]>><<pass 2>><</link>>
 			<br>
 			<<if $dorenintro gte 1>>
-				<<link [[Doren's Flat (0:02)|Doren Entrance]]>><<pass 2>><</link>>
+				<<dorenflaticon>><<link [[Doren's Flat (0:02)|Doren Entrance]]>><<pass 2>><</link>>
 				<br>
 			<</if>>
 		<</if>>
diff --git a/game/overworld-town/loc-street/cliff.twee b/game/overworld-town/loc-street/cliff.twee
index de043b94dadc53bb0244be652dda9466682b9884..64bcd4fc162631ec76e7d560cc524ebef022435b 100644
--- a/game/overworld-town/loc-street/cliff.twee
+++ b/game/overworld-town/loc-street/cliff.twee
@@ -15,6 +15,8 @@ There's a path leading down to the beach.
 <<if $daystate is "day">>
 	<<if $weather is "rain">>
 		Wind howls in from the sea.
+	<<elseif $weather is "snow">>
+		Wind howls in from the sea.
 	<<else>>
 		A gentle breeze blows in from the sea.
 	<</if>>
diff --git a/game/overworld-town/loc-street/connudatus.twee b/game/overworld-town/loc-street/connudatus.twee
index ec15bf00b4ba73e4e58341cea80ad72c26a24609..4eea2993197c9c96d107bfba047f7d7c1860c664 100644
--- a/game/overworld-town/loc-street/connudatus.twee
+++ b/game/overworld-town/loc-street/connudatus.twee
@@ -80,7 +80,7 @@ You are on Connudatus Street. The numerous clubs, bars and restaurants make it t
 			<</if>>
 		<</if>>
 		<<if $daystate isnot "dusk" and $daystate isnot "night" and $hour isnot 6>>
-			<<link [[Strip Club|Strip Club Lock]]>><</link>>
+			<<stripclubicon>><<link [[Strip Club|Strip Club Lock]]>><</link>>
 			<br>
 		<<elseif $hour is 6>>
 			<span class="blue">People are leaving the club.</span> It must be closing time.
diff --git a/game/overworld-town/loc-street/danube.twee b/game/overworld-town/loc-street/danube.twee
index 6adf91e53da18ff43ee3f13b03742280b8131933..80abacf6b2f63cd9c234ec463ad3c48efcd5e866 100644
--- a/game/overworld-town/loc-street/danube.twee
+++ b/game/overworld-town/loc-street/danube.twee
@@ -5,6 +5,8 @@ You are on Danube Street. The houses here are spacious and stately.
 <<if $daystate is "day">>
 	<<if $weather is "rain">>
 		The rain has driven people indoors.
+	<<elseif $weather is "snow">>
+		The snow has kept most indoors.
 	<<else>>
 		You hear activity from the walled gardens.
 	<</if>>
@@ -42,21 +44,21 @@ Some homes host extravagant Halloween displays.
 		<<foresticon>><<link [[Forest (0:10)|Forest]]>><<pass 10>><<set $forest to 0>><<set $eventskip to 1>><</link>>
 		<br>
 		<<if $exposed lte 0 and $openinghours is 1>>
-			<<link [[Spa (0:02)|Spa]]>><<pass 2>><</link>>
+			<<spaicon>><<link [[Spa (0:02)|Spa]]>><<pass 2>><</link>>
 			<br>
 		<<elseif $openinghours is 0>>
-			<<link [[Spa (0:02)|Spa Lock]]>><<pass 2>><</link>>
+			<<spaicon>><<link [[Spa (0:02)|Spa Lock]]>><<pass 2>><</link>>
 			<br>
 		<</if>>
 		<<if $exhibitionismrun is "danube" and $exposed lte 1>>
-			<<link [[Oak behind spa|Danube Oak]]>><</link>>
+			<<ind>><<link [[Oak behind spa|Danube Oak]]>><</link>>
 			<br>
 		<</if>>
 		<<if $daystate is "night">>
-			<<link [[Approach one of the houses (0:02)|Danube House Lock]]>><<pass 2>><</link>>
+			<<ind>><<link [[Approach one of the houses (0:02)|Danube House Lock]]>><<pass 2>><</link>>
 			<br>
 		<<elseif $exposed lte 0>>
-			<<link [[Knock on one of the houses (0:02)|Danube House Knock]]>><<pass 2>><</link>>
+			<<ind>><<link [[Knock on one of the houses (0:02)|Danube House Knock]]>><<pass 2>><</link>>
 			<br>
 		<</if>>
 		<br>
diff --git a/game/overworld-town/loc-street/domus.twee b/game/overworld-town/loc-street/domus.twee
index 454843b1c8615537d6a2777437f1fd802652773d..18b37a219e47ff471425f9f572bf3b5ee2b1769d 100644
--- a/game/overworld-town/loc-street/domus.twee
+++ b/game/overworld-town/loc-street/domus.twee
@@ -5,6 +5,8 @@ You are on Domus Street. The orphanage is here. The street is dominated by small
 <<if $daystate is "day">>
 	<<if $weather is "rain">>
 		People walk quickly, driven by the rain.
+	<<elseif $weather is "snow">>
+		People walk brisk against the cold.
 	<<else>>
 		People tend to their gardens and go about their business all along the street.
 	<</if>>
@@ -18,6 +20,9 @@ You are on Domus Street. The orphanage is here. The street is dominated by small
 <<if $halloween is 1>>
 	Jack-o'-lanterns, skeletons, and spiders decorate the houses.
 <</if>>
+<<if $season is "winter">>
+	Snowmen stand in gardens.
+<</if>>
 <<streeteffects>>
 <br><br>
 <<if $exposed gte 1>>
@@ -53,17 +58,17 @@ You are on Domus Street. The orphanage is here. The street is dominated by small
 
 			Places of interest
 			<br>
-			<<link [[Go home (0:01)->Orphanage]]>><<pass 1>><</link>>
+			<<homeicon>><<link [[Go home (0:01)->Orphanage]]>><<pass 1>><</link>>
 			<br>
 			<<if $daystate is "night">>
-				<<link [[Approach one of the houses (0:02)|Domus House Lock]]>><<pass 2>><</link>>
+				<<ind>><<link [[Approach one of the houses (0:02)|Domus House Lock]]>><<pass 2>><</link>>
 				<br>
 			<<elseif $exposed lte 0>>
-				<<link [[Knock on one of the houses (0:02)|Domus House Knock]]>><<pass 2>><</link>>
+				<<ind>><<link [[Knock on one of the houses (0:02)|Domus House Knock]]>><<pass 2>><</link>>
 				<br>
 			<</if>>
 			<<if $exposed gte 2 and $daystate isnot "night" and $exhibitionism gte 75>>
-				<<link [[Beg for clothing (0:02)|Domus House Nude]]>><<pass 2>><</link>><<exhibitionist5>>
+				<<ind>><<link [[Beg for clothing (0:02)|Domus House Nude]]>><<pass 2>><</link>><<exhibitionist5>>
 				<br>
 			<</if>>
 			<<if $exposed gte 1 and $daystate isnot "night">>
diff --git a/game/overworld-town/loc-street/harvest.twee b/game/overworld-town/loc-street/harvest.twee
index 1adcbe323b307ca270e54b9ca5360ecde03e809e..72630ab81c3cc4f8622c98450897c56fdcf30340 100644
--- a/game/overworld-town/loc-street/harvest.twee
+++ b/game/overworld-town/loc-street/harvest.twee
@@ -45,23 +45,23 @@ You are on Harvest Street. There's a road leading out of town, and many of the b
 				<br>
 			<</if>>
 		<<elseif $brothelknown is 1 and $exposed lte 0>>
-			<<link [[Enter suspicious building (0:05)|Brothel Intro]]>><<set $brothelintro to 1>><<pass 5>><</link>>
+			<<brothelicon>><<link [[Enter suspicious building (0:05)|Brothel Intro]]>><<set $brothelintro to 1>><<pass 5>><</link>>
 			<br>
 		<</if>>
 		<<if $pubintro is 1 and $exposed lte 0>>
 			<<pubicon>><<link [[Pub (0:02)|Pub]]>><<pass 2>><</link>>
 			<br>
 		<<elseif $exposed lte 0>>
-			<<link [[Pub (0:02)|Pub Intro]]>><<pass 2>><</link>>
+			<<pubicon>><<link [[Pub (0:02)|Pub Intro]]>><<pass 2>><</link>>
 			<br>
 		<</if>>
 		<<if $daystate is "night">>
-			<<link [[Bus Station (0:02)|Bus Station Entrance]]>><<pass 2>><</link>>
+			<<ind>><<link [[Bus Station (0:02)|Bus Station Entrance]]>><<pass 2>><</link>>
 		<<else>>
-			<<link [[Bus Station (0:02)|Bus Station]]>><<pass 2>><</link>>
+			<<ind>><<link [[Bus Station (0:02)|Bus Station]]>><<pass 2>><</link>>
 		<</if>>
 		<br><br>
-		<<link [[Leave town (0:05)|Farm Road 1]]>><<set $phase to 0>><<pass 5>><</link>>
+		<<roadicon>><<link [[Leave town (0:05)|Farm Road 1]]>><<set $phase to 0>><<pass 5>><</link>>
 		<br><br>
 		<<if $exposed gte 1 and $daystate isnot "night">>
 		<<else>>
diff --git a/game/overworld-town/loc-street/high.twee b/game/overworld-town/loc-street/high.twee
index 64bc157661af3df38e01cb9accfbc398cba812db..84b7b1e124d071f26699d366fbf690b07f14a9b7 100644
--- a/game/overworld-town/loc-street/high.twee
+++ b/game/overworld-town/loc-street/high.twee
@@ -5,6 +5,8 @@ You are on the High Street, centre of the town's commercial activity. The shoppi
 <<if $daystate is "day">>
 	<<if $weather is "rain">>
 		The street is busy despite the rain.
+	<<elseif $weather is "snow">>
+		The street is busy despite the cold.
 	<<else>>
 		The street is packed with people, walking in all directions.
 	<</if>>
diff --git a/game/overworld-town/loc-street/oxford.twee b/game/overworld-town/loc-street/oxford.twee
index 7ed0b012148986e39f3cefd24c845fad77d08225..3450672530f5b9e42fad19a357f9998587633f69 100644
--- a/game/overworld-town/loc-street/oxford.twee
+++ b/game/overworld-town/loc-street/oxford.twee
@@ -6,6 +6,8 @@ You are on Oxford Street. There's an eclectic mix of buildings, but most notable
 	<<if $daystate is "day">>
 		<<if $weather is "rain">>
 			The street is busy despite the rain.
+		<<elseif $weather is "snow">>
+			The street is busy despite the cold.
 		<<else>>
 			<<if $hour gte 7 and $hour lte 16>>
 				Chatter and laughter emerges from the school grounds.
@@ -24,6 +26,8 @@ You are on Oxford Street. There's an eclectic mix of buildings, but most notable
 	<<if $daystate is "day">>
 		<<if $weather is "rain">>
 			The street is busy despite the rain.
+		<<elseif $weather is "snow">>
+			The street is busy despite the cold.
 		<<else>>
 			Many cars and pedestrians are passing by.
 		<</if>>
@@ -86,7 +90,7 @@ You are on Oxford Street. There's an eclectic mix of buildings, but most notable
 				<br><br>
 			<</if>>
 		<</if>>
-		<<if $schoolday is 1 and $hour is 15 and $exposed lte 0 and $weather isnot "rain">>
+		<<if $schoolday is 1 and $hour is 15 and $exposed lte 0 and $weather isnot "rain" and $weather isnot "snow">>
 			A group of students chat nearby. They say they're going to the lake.
 			<br><br>
 			<<link [[Join them (0:30)|Lake Journey]]>><<pass 30>><</link>>
@@ -95,20 +99,20 @@ You are on Oxford Street. There's an eclectic mix of buildings, but most notable
 		Places of interest
 		<br>
 		<<if $schoolday is 1 and $hour gte 7 and $hour lte 16>>
-			<<link [[School (0:02)|School Front Playground]]>><<pass 2>><</link>>
+			<<schoolicon>><<link [[School (0:02)|School Front Playground]]>><<pass 2>><</link>>
 			<br>
 		<<else>>
-			<<link [[School|School Locked]]>><</link>>
+			<<schoolicon>><<link [[School|School Locked]]>><</link>>
 			<br>
 		<</if>>
 		<<if $daystate is "day" and $weekday is 7 or $daystate is "day" and $weekday is 1>>
 			<<if $exposed lte 0>>
-				<<link [[Museum (0:01)|Museum]]>><<pass 1>><</link>>
+				<<museumicon>><<link [[Museum (0:01)|Museum]]>><<pass 1>><</link>>
 				<br>
 			<</if>>
 		<<else>>
 			<<if $exposed lte 0>>
-				<<link [[Museum|Museum Lock]]>><<pass 1>><</link>>
+				<<museumicon>><<link [[Museum|Museum Lock]]>><<pass 1>><</link>>
 				<br>
 			<</if>>
 		<</if>>
diff --git a/game/overworld-town/loc-street/starfish.twee b/game/overworld-town/loc-street/starfish.twee
index 1602258991139054437604c5c1bb003036af6ec6..4a50ada42fe1db6b57eb9ed8aea3489d5992e63b 100644
--- a/game/overworld-town/loc-street/starfish.twee
+++ b/game/overworld-town/loc-street/starfish.twee
@@ -44,10 +44,10 @@ You are on Starfish Street. Wind blows in from the ocean.
 		<<link [[Beach (0:05)|Beach]]>><<pass 5>><</link>>
 		<br>
 		<<if $daystate is "day" or $daystate is "dusk">>
-		<<link [[Arcade (0:01)|Arcade]]>><<pass 1>><</link>>
+		<<arcadeicon>><<link [[Arcade (0:01)|Arcade]]>><<pass 1>><</link>>
 		<br>
 		<<else>>
-		<<link [[Arcade (0:01)|Arcade Lock]]>><<pass 1>><</link>>
+		<<arcadeicon>><<link [[Arcade (0:01)|Arcade Lock]]>><<pass 1>><</link>>
 		<br>
 		<</if>>
 		<br>
diff --git a/game/overworld-town/loc-street/wolf.twee b/game/overworld-town/loc-street/wolf.twee
index f0fed63d0e2297fbafbff127d20102c858682826..efa41e9d50066c5af16429d6abf8fe5ce54fa547 100644
--- a/game/overworld-town/loc-street/wolf.twee
+++ b/game/overworld-town/loc-street/wolf.twee
@@ -5,6 +5,8 @@ You are on Wolf Street. The nearby forest bleeds into the town here, particularl
 <<if $daystate is "day">>
 	<<if $weather is "rain">>
 		The trees sway in the wind.
+	<<elseif $weather is "snow">>
+		The trees sway in the wind, dislodging snow from their branches.
 	<<else>>
 		It's one of the quieter parts of town.
 	<</if>>
@@ -36,13 +38,13 @@ You are on Wolf Street. The nearby forest bleeds into the town here, particularl
 		<</if>>
 		Places of interest
 		<br>
-		<<link [[Temple (0:01)|Temple]]>><<pass 1>><</link>>
+		<<ind>><<link [[Temple (0:01)|Temple]]>><<pass 1>><</link>>
 		<br>
 			<<if $soup_kitchen_known is 1 and $exposed lte 0>>
 				<<if $hour gte 18 and $hour lte 20>>
-				<<link [[Soup Kitchen (0:01)|Soup Kitchen]]>><<pass 1>><</link>>
+				<<soupkitchenicon>><<link [[Soup Kitchen (0:01)|Soup Kitchen]]>><<pass 1>><</link>>
 				<<else>>
-				<<link [[Soup Kitchen (0:01)|Soup Kitchen Closed]]>><<pass 1>><</link>>
+				<<soupkitchenicon>><<link [[Soup Kitchen (0:01)|Soup Kitchen Closed]]>><<pass 1>><</link>>
 				<</if>>
 			<br>
 			<</if>>
diff --git a/game/overworld-town/loc-strip club/main.twee b/game/overworld-town/loc-strip club/main.twee
index 344e067c9ebb55ed91860bf12279a934c22d2741..9fc0a9c82a898beebf3d6ea0d0e9656cbbb29493 100644
--- a/game/overworld-town/loc-strip club/main.twee	
+++ b/game/overworld-town/loc-strip club/main.twee	
@@ -662,7 +662,7 @@ Before <<he>> can move away however, the patron sat beside <<him>> grabs <<him>>
 You look to security, but they are busy dealing with a brawl on the other side of the club. Darryl is clearly distraught, but makes no attempt to resist, merely whispering, "Please, no."
 <br><br>
 
-<<link [[Do nothing|Strip Club Bartending Daryll Molest]]>><</link>>
+<<link [[Do nothing|Strip Club Bartending Darryl Molest]]>><</link>>
 <br>
 	<<if $promiscuity gte 35>>
 <<link [[Seduce the assailant to save Darryl|Strip Club Bartending Molestation]]>><<set $timer to 10>><<set $molestationstart to 1>><</link>><<promiscuous3>>
@@ -711,7 +711,7 @@ You look to security, but they are busy dealing with a brawl on the other side o
 	<span id="next"><<link [[Next|Strip Club Bartending Molestation Finish]]>><</link>></span><<nexttext>>
 <</if>>
 
-:: Strip Club Bartending Daryll Molest [nobr]
+:: Strip Club Bartending Darryl Molest [nobr]
 
 <<set $outside to 0>><<set $location to "strip_club">><<effects>>
 
@@ -753,7 +753,7 @@ You manage to knock <<him>> prone. <<He>> struggles to stand up, but it gives yo
 
 <</if>>
 
-<<npc Darryl>><<person1>>Daryll rushes over to you. <<His>> hair is tangled, "Are you alright? I tried to get someone over here as fast as I could!"
+<<npc Darryl>><<person1>>Darryl rushes over to you. <<His>> hair is tangled, "Are you alright? I tried to get someone over here as fast as I could!"
 <br><br>
 
 <<npcincr Darryl love 10>>
diff --git a/game/overworld-town/loc-temple/events.twee b/game/overworld-town/loc-temple/events.twee
index de3c8497b214d8581cc99124aa28a9ccc9127be2..3a46a517cdcc8993030b61766f6294ff89964de7 100644
--- a/game/overworld-town/loc-temple/events.twee
+++ b/game/overworld-town/loc-temple/events.twee
@@ -34,6 +34,8 @@ You sit on the grass beside the initiates.
 <br><br>
 <<if $weather is "rain">>
 	You chat with them for a while, sheltering from the rain beneath the boughs of a tree.
+<<elseif $weather is "snow">>
+	You chat with them for a while, sheltering from the snow beneath the boughs of a tree.
 <<elseif $weather is "clear">>
 	You chat with them for a while, enjoying the gentle feel of the sun.
 <<else>>
diff --git a/game/overworld-town/loc-temple/garden.twee b/game/overworld-town/loc-temple/garden.twee
index 3e420af75b42171cf9fb8f5aff75cd3a40571bbb..9a173f8140367f79619e5370bc8a72662808192f 100644
--- a/game/overworld-town/loc-temple/garden.twee
+++ b/game/overworld-town/loc-temple/garden.twee
@@ -461,6 +461,8 @@ You struggle to your feet and take a few steps toward the sounds. Water laps aga
 The earth slopes up. You climb until you hear the sound of traffic. You ignore the burning in your legs and soon feel
 <<if $weather is "rain">>
 	rain blow into your face.
+<<elesif $weather is "snow">>
+	snow settle on your face.
 <<else>>
 	a fresh gust of air blow against your face.
 <</if>>
@@ -825,6 +827,8 @@ The tendrils go limp, and you crash into the undergrowth.
 You keep low as you move between hedges, peeking around each corner before making another mad dash. You know they sometimes dry clothes out here.
 <<if $weather is "rain">>
 	Maybe they've stored some nearby out of the rain.
+<<elseif $weather is "snow">>
+	Maybe they've stored some nearby out of the snow.
 <</if>>
 <br><br>
 <<if $rng gte 51 and $bestialitydisable is "f">>
@@ -843,7 +847,7 @@ You keep low as you move between hedges, peeking around each corner before makin
 	<</if>>
 <<else>>
 	<<generate1>><<generate2>>
-	You see a nun's habit hanging on a line <<if $weather is "rain">>that's been shifted out of the rain in haste<<else>>above a bed of flowers<</if>>. There are some towels on the same line. The towels are closer. A <<person1>><<person>> and <<person2>><<person>>, each wearing a habit, are tending to a flower bed nearby. Their backs are turned.
+	You see a nun's habit hanging on a line <<if $weather is "rain">>that's been shifted out of the rain in haste<<elseif $weather is "snow">>that's been shifted out of the snow in haste<<else>>above a bed of flowers<</if>>. There are some towels on the same line. The towels are closer. A <<person1>><<person>> and <<person2>><<person>>, each wearing a habit, are tending to a flower bed nearby. Their backs are turned.
 	<br><br>
 	<<set $skulduggerydifficulty to 700>>
 	<<link [[Steal habit|Temple Garden Habit]]>><<set $skulduggerydifficulty to 700>><<crimeup 50>><</link>><<skulduggerydifficulty>><<crime>>
diff --git a/game/overworld-town/loc-temple/quarters.twee b/game/overworld-town/loc-temple/quarters.twee
index 72835073c44383eee940932e9fd74fba9ca6de8c..a62bcf47a53b5dd9c49aca81a77bbf7835ee9506 100644
--- a/game/overworld-town/loc-temple/quarters.twee
+++ b/game/overworld-town/loc-temple/quarters.twee
@@ -800,7 +800,7 @@ You push the <<person>> onto a nearby bunk. You climb on after, and crawl on top
 :: Temple Quarters Flaunt [nobr]
 
 <<set $outside to 0>><<set $location to "temple">><<temple_effects>><<effects>>
-You return to work, but lean over a little more than you have to. You wiggle your thrust out <<bottom>> as you clean.
+You return to work, but lean over a little more than you have to. You wiggle your <<bottom>> as you clean.
 <<exhibitionism1>>
 You turn once the shelf is in order. The <<monk>> has slipped a hand beneath <<his>> habit. <<Hes>> pleasuring <<himself>>.
 <br><br>
diff --git a/game/overworld-town/loc-temple/soup-kitchen.twee b/game/overworld-town/loc-temple/soup-kitchen.twee
index ad3d2b28ee3436d04a02b8ea5aa73fea7e302b37..6c9740449395539b9dc10a8819c22d2e5d3a2022 100644
--- a/game/overworld-town/loc-temple/soup-kitchen.twee
+++ b/game/overworld-town/loc-temple/soup-kitchen.twee
@@ -152,7 +152,7 @@ You ask River for help with the maths competition.
 	<<link [[Not now|Soup Kitchen]]>><<endevent>><</link>>
 	<br>
 <<else>>
-	<<npc River>><<person1>>
+	
 	"I won't show favouritism," River says, piercing you with <<his>> blue eyes. <i>Perhaps <<he>> would be more willing to help if <<he>> had a better opinion of you.</i>
 	<br><br>
 	<<endevent>>
@@ -201,7 +201,7 @@ You help River work the kitchen. You cut vegetables ready for cooking and clean
 		You're bent over one such spillage when you feel a hand on your <<bottom>>. You turn to see a <<npc River>><<generate2>><<person2>><<person>> groping you. <<He>> squeezes.
 		<<gstress>><<gtrauma>><<stress 6>><<trauma 6>>
 		<br><br>
-		<<link [[Ignore|Soup Kitchen Grope Ignore]]>><<set $submissive += 1>><</link>><<promiscuous1>>
+		<<link [[Ignore|Soup Kitchen Grope Ignore]]>><<set $submissive += 1>><<stress 6>><<arousal 6>><</link>><<gstress>><<garousal>>
 		<br>
 		<<link [[Walk away|Soup Kitchen Grope Walk]]>><<npcincr River love -1>><</link>><<llove>>
 		<br>
@@ -466,8 +466,8 @@ The <<monk>> returns a few minutes later, smelling soapy. River chastises <<him>
 
 <<set $outside to 0>><<set $location to "temple">><<effects>>
 You ignore the <<person>> and continue cleaning the floor. <<He>> takes your lack of protest as encouragement, and redoubles the groping.
-<<promiscuity1>>
-You feel a little flustered, but <<he>> doesn't try to take things further.
+<br><br>
+You feel flustered, but <<he>> doesn't try to take things further.
 <br><br>
 <<endevent>>
 <<link [[Next|Soup Kitchen]]>><</link>>
diff --git a/game/overworld-town/special-kylar/main.twee b/game/overworld-town/special-kylar/main.twee
index 8fecebeae0bdbcbc162e021b494a955741b9f5a6..a9259ff8e53ec5479515f43d7cd6363a14895755 100644
--- a/game/overworld-town/special-kylar/main.twee
+++ b/game/overworld-town/special-kylar/main.twee
@@ -884,7 +884,7 @@ You lean forward, and your lips meet. <<He>> pushes <<his>> tongue into your mou
 
 	<<npc Kylar>><<person1>>
 
-	<<if $weather is "rain">>
+	<<if $weather is "rain" or $weather is "snow">>
 		<<link [[Walk to the arcade together (0:15)|Kylar Arcade Walk]]>><<pass 15>><</link>>
 		<br>
 	<<else>>
@@ -1579,7 +1579,7 @@ You sit beside Kylar and say hello.
 		<<Hes>> eager to chat, and keeps touching your thigh.
 		<</if>>
 	<br><br>
-	You finish your food. Kylar carries your trays away, then walks in the direction of the <<if $weather is "rain">>library<<else>>rear playground<</if>>.
+	You finish your food. Kylar carries your trays away, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
 	<<link [[Next|Canteen]]>><<endevent>><</link>>
@@ -1590,7 +1590,7 @@ You sit beside Kylar and say hello.
 	<<He>> stops spearing <<his>> food, but doesn't respond. You try to make small talk. You think <<hes>> listening.
 	<br><br>
 
-	You finish your food and depart. Kylar walks in the direction of the <<if $weather is "rain">>library<<else>>rear playground<</if>>.
+	You finish your food and depart. Kylar walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
 	<<link [[Next|Canteen]]>><<endevent>><</link>>
@@ -1643,7 +1643,7 @@ Heads turn around the canteen. You pull Kylar closer.
 <br><br>
 <<endevent>>
 <<npc Kylar>><<person1>>
-The other students lose interest. You finish your food beside a relieved Kylar. <<He>> carries your trays away once finished, then walks in the direction of the <<if $weather is "rain">>library<<else>>rear playground<</if>>.
+The other students lose interest. You finish your food beside a relieved Kylar. <<He>> carries your trays away once finished, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 <br><br>
 
 
@@ -1759,7 +1759,7 @@ No teachers can hear you over the noise in the canteen. If you were more popular
 	<<endevent>><<npc Kylar>><<person1>>
 	Kylar hugs you from behind. "I-I knew you'd save me," <<he>> says.<<gglove>><<npcincr Kylar love 3>>
 	<br><br>
-	The other students lose interest after Whitney's departure. You finish your food beside a relieved Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain">>library<<else>>rear playground<</if>>.
+	The other students lose interest after Whitney's departure. You finish your food beside a relieved Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
 	<<link [[Next|Canteen]]>><<endevent>><</link>><br>
@@ -1777,7 +1777,7 @@ No teachers can hear you over the noise in the canteen. If you were more popular
 	<<endevent>><<npc Kylar>><<person1>>
 	Kylar hugs you from behind. "I-I knew you'd save me," <<he>> says.<<gglove>><<npcincr Kylar love 3>>
 	<br><br>
-	The other students lose interest after Whitney's departure. You finish your food beside a relieved Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain">>library<<else>>rear playground<</if>>.
+	The other students lose interest after Whitney's departure. You finish your food beside a relieved Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
 
@@ -1808,7 +1808,7 @@ No teachers can hear you over the noise in the canteen. If you were more popular
 	<<endevent>><<npc Kylar>><<person1>>
 	Kylar hugs you from behind. "I-I knew you'd save me," <<he>> says.<<gglove>><<npcincr Kylar love 3>>
 	<br><br>
-	The other students lose interest after Whitney's departure. You finish your food beside a relieved Kylar. <<He>> carries your trays away once you're done, then walks in the direction of the <<if $weather is "rain">>library<<else>>rear playground<</if>>.
+	The other students lose interest after Whitney's departure. You finish your food beside a relieved Kylar. <<He>> carries your trays away once you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
 
@@ -1827,7 +1827,7 @@ No teachers can hear you over the noise in the canteen. If you were more popular
 	The crowd disperses as Kylar rushes to your side. "Y-you're hurt," <<he>> says. <<He>> watches Whitney depart, and fear turns to malice.<<gglove>><<npcincr Kylar love 3>>
 	<br><br>
 
-	<<tearful>> you finishes your food beside a brooding Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain">>library<<else>>rear playground<</if>>.
+	<<tearful>> you finishes your food beside a brooding Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
 
@@ -1936,7 +1936,7 @@ You smile and squeeze <<his>> other hand. <<He>> drops the knife with a horrifie
 "You really are perfect," <<he>> says into your shoulder, <<his>> grip a little too tight.
 <br><br>
 
-You continue eating, sat beside a dazed Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain">>library<<else>>rear playground<</if>>.
+You continue eating, sat beside a dazed Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 <br><br>
 
 <<link [[Next|Canteen]]>><<endevent>><</link>><br>
diff --git a/game/overworld-town/special-robin/main.twee b/game/overworld-town/special-robin/main.twee
index 011ebfd946f870d8dfadc5f55421f8b740150dae..e7fbc59ce0191204535549a9b4de78081dc6900a 100644
--- a/game/overworld-town/special-robin/main.twee
+++ b/game/overworld-town/special-robin/main.twee
@@ -24,6 +24,23 @@
 	<br><br>
 	<<link [[Leave|Orphanage]]>><</link>>
 	<br>
+<<elseif $christmas_robin_lewd is 1>>
+	<<unset $christmas_robin_lewd>>
+	<<npc Robin>><<person1>>
+	There's a note on Robin's door. It specifies that only you may enter.
+	<br><br>
+	You enter to find Robin sitting on the bed. <<His>> clothes are missing, and in their places is a mix of wrapping paper and ribbon. There's just enough to cover <<his>> naughty parts.
+	<br><br>
+	"I-I thought I would surprise you," Robin's face is bright red, but <<his>> gaze never leaves yours.
+	<br><br>
+	
+	"Do you want to unwrap me?" <<ggarousal>><<arousal 6>>
+	<br><br>
+	<<link [[Yes|Robin Unwrap]]>><</link>><<promiscuous1>>
+	<br>
+	<<link [[No|Robin Unwrap No]]>><</link>>
+	<br>
+	
 <<elseif $schoolday is 1 and $hour gte 8 and $hour lte 15 and $robinschoolafternoon isnot 1 or $hour lte 15 and $robinschoolmorning is 1 and $robinschoolafternoon isnot 1>>
 	You go to Robin's room. There's a note on the door. "Gone to school!"
 	<br><br>
@@ -66,6 +83,162 @@ You go to Robin's room. There's a note on the door. "Sleeping!"
 	<<robinroom>>
 <</if>>
 
+:: Robin Unwrap [nobr]
+<<effects>>
+
+You undo the ribbin tied around Robin's chest. The wrapping paper falls to the bed. Robin gasps as you undo the ribbon looped around <<his>> crotch. <<Hes>> left entirely nude before you.
+<<promiscuity1>>
+
+Robin points up. There's mistletoe. "Caught you," <<he>> says. Before you can say a word, <<his>> arms wrap around your body and pull you to the bed. <<His>> lips meet yours.
+<br><br>
+
+<<link [[Next|Robin Unwrap Sex]]>><<set $sexstart to 1>><</link>>
+<br>
+
+
+
+:: Robin Unwrap No [nobr]
+<<effects>>
+
+
+<<if $submissive gte 1150>>
+	You shake your head. "N-no," you say. "But I'm glad you're my present."
+<<elseif $submissive lte 850>>
+	You shake your head. "Not in the mood," you say. "But you make a great gift."
+<<else>>
+	You shake your head. "I can't right now," you say. "But you're the best present I could ever ask for."
+<</if>>
+<br><br>
+
+Robin's eyes light up, and <<he>> rises to <<his>> feet. <<He>> points up. There's mistletoe. "Got you," <<he>> says, and gives you a small peck on the lips.
+<br><br>
+
+<<He>> smiles. "I'm going to change into the clothes you brought me." You nod, and take your leave.
+<br><br>
+
+<<link [[Next|Orphanage]]>><<endevent>><</link>>
+<br>
+
+
+:: Robin Unwrap Sex [nobr]
+<<if $sexstart is 1>>
+<<set $sexstart to 0>>
+<<consensual>>
+<<set $consensual to 1>>
+<<neutral 1>>
+
+<<maninit>>
+<<set $enemytrust += 500>><<npcexpose>><<set $speechdisable to 1>>
+<<set $enemyarousalmax to 600>>
+
+<</if>>
+
+<<set $enemyanger to 0>>
+<<effects>>
+<<effectsman>><<man>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $finish is 1>>
+	<span id="next"><<link [[Next|Robin Unwrap Sex Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Robin Unwrap Sex Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Robin Unwrap Sex Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Robin Unwrap Sex]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Robin Unwrap Sex Finish [nobr]
+<<set $outside to 0>><<set $location to "home">><<schooleffects>><<effects>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+<<ejaculation>>
+
+Robin clings to you and smiles.
+<br><br>
+
+<<elseif $enemyhealth lte 0>>
+
+"Ow!" Robin says. <<Hes>> still smiling.
+<br><br>
+
+<<elseif $finish is 1>>
+
+Robin clings to you and smiles.
+<br><br>
+
+<</if>>
+
+<<He>> gazes into your eyes. "I love you." <<He>> kisses you again.
+
+	<<if $penisfucked is 1>>
+	"It feels so good to have you inside me."
+	<<elseif $vaginafucked is 1>>
+	"It feels so good inside you."
+	<</if>>
+
+<<if $orgasmcurrent is 0 and not $worn.genitals.type.includes("chastity")>><<set _mouthful to 0>>
+	<br>
+	Robin looks
+	<<if $NPCName[$NPCNameList.indexOf("Robin")].dom lte 11>>
+		worried. "But," <<he>> blushes. "I mean... Nothing."
+	<<elseif $NPCName[$NPCNameList.indexOf("Robin")].dom lte 26>>
+		worried. "But," <<he>> whispers. "You didn't cum. I hope it was good."
+		<br>
+		You nod.
+	<<elseif $NPCName[$NPCNameList.indexOf("Robin")].dom lte 41>>
+		playful. "But you didn't cum yet," <<he>> whispers. <<His>> hands wander over your <<genitalsstop>>
+		<<arousal 2500>>
+		<<if $arousal gte 10000>>
+		<<orgasmpassage>>Robin looks pleased.
+		<<else>>
+		After a few minutes <<he>> stops. "Sorry, I-I don't really know what I'm doing."
+		<br>
+		"It was good," you tell <<himstop>> "Really good."
+		<br>
+		<</if>>
+	<<else>><<set _mouthful to 1>>
+		playful. "And now," <<he>> smiles. "<<print either("I make you squeal.","You squeal.","It's your turn.","You cum.","I make you cum.","I get you off.")>>"
+		<br>
+		Robin disappears under the cover. A moment later you feel <<his>> tongue licking your <<genitalsstop>>
+		<br>
+		<<arousal 4000>>
+		<<if $arousal gte 10000>><<orgasmpassage>>
+		<<else>>
+			<br>
+			After a while of this, Robin crawls back up. "I'm not giving up," <<he>> breathes. <<He>> nips your ear. "That isn't happening."
+			<br>
+			Robin disappears back under the cover and goes at it with renewed determination.
+			<<set $arousal to 10000>>
+			<<if $arousal gte 10000>><<orgasmpassage>><</if>>
+		<</if>>
+	<</if>>
+	<<He>> kisses you again. "I love you."
+	<br>
+	<<His>> eyes shut, and <<he>> falls into a gentle sleep.
+<<else>>
+	<<His>> eyes shut, and <<he>> falls into a gentle sleep.
+<</if>>
+<br><br>
+
+<<clotheson>>
+<<endcombat>>
+<<npc Robin>><<person1>>
+"Merry Christmas," Robin whispers. <<He>> kisses your cheek. "I know this was sudden, but I hope you had fun."
+<br><br>
+<<He>> rises to a sitting position. I need to change into the clothes you brought me!" You nod, and take your leave.
+<br><br>
+
+
+<<link [[Next|Orphanage]]>><<endevent>><</link>>
+<br>
+
+
+
+
 :: Robin Hug Stop [nobr]
 
 <<set $outside to 0>><<set $location to "home">><<effects>>
@@ -1587,7 +1760,7 @@ You lie with Robin, feeling <<him>> breathe beside you. After a time, you leave
 	You lose control of yourself and throw yourself into Robin's chest, tackling <<him>> to the bed and clinging tightly to <<his>> body. Robin seems stunned by this.
 	<<set $robinstunned to 1>>
 	<<elseif $trauma gte ($traumamax / 7) * 2 or $stress gte ($stressmax / 7) * 3>>
-	You cling tightly to Robin's chest, nearly tackling <<him>> to the bed. Robin seems to be somewhat startled by this.
+	You cling tight to Robin's chest, nearly tackling <<him>> to the bed. Robin seems to be somewhat startled by this.
 	<<elseif $trauma gte ($traumamax / 7) * 1 or $stress gte ($stressmax / 7) * 1>>
 	You wrap your arms around Robin's shoulders and bury your head in <<his>> neck. Robin doesn't seem to know what to make of this.
 	<<else>>
@@ -1602,7 +1775,7 @@ You lie with Robin, feeling <<him>> breathe beside you. After a time, you leave
 <<set $outside to 0>><<set $location to "home">><<effects>>
 
 <<if $NPCName[$NPCNameList.indexOf("Robin")].love gte 80 and $robinhugbreak gte 1>>
-You cling tightly to Robin and nearly tackle <<him>> to the bed as you whimper and cry loudly.
+You cling tight to Robin and nearly tackle <<him>> to the bed as you whimper and cry loudly.
 <br><br>
 
 "Wh-what's wrong!?" Robin yells, horrified at your behaviour. "Oh no, something happened again, didn't it?" <<He>> hugs you back, doing <<his>> best to give comfort as you unload everything that happened to you.
@@ -2122,7 +2295,7 @@ You fall to the ground, too battered to fight. Whitney kicks you for good measur
 <<molested>>
 
 <<npc Whitney>><<person1>><<maninit>>
-Whitney grabs your wrist and drags you to a secluded area behind the canteen, <<he>> <<if $pronoun is "m">>unzips <<his>> fly,<<else>>lifts <<his>> skirt,<</if>> revealing <<his>><<if $NPCList[0].penis isnot "none">>penis<<else>>pussy<</if>>. "Open wide" <<he>> says. <<His>> friends cheer <<him>> on.
+Whitney grabs your wrist and drags you to a secluded area behind the canteen, <<he>> <<if $pronoun is "m">>unzips <<his>> fly,<<else>>lifts <<his>> skirt,<</if>> revealing <<his>> <<if $NPCList[0].penis isnot "none">>penis<<else>>pussy<</if>>. "Open wide" <<he>> says. <<His>> friends cheer <<him>> on.
 <br><br>
 
 <<npcoral>><<set $NPCList[0].lefthand to "hair">><<set $enemyanger to 70>>
diff --git a/game/overworld-town/special-robin/walk.twee b/game/overworld-town/special-robin/walk.twee
index d1c085beb82f350135b7678a5c438fac230b778b..01541db30ffb84eff1b35acc556a4f527197e245 100644
--- a/game/overworld-town/special-robin/walk.twee
+++ b/game/overworld-town/special-robin/walk.twee
@@ -750,24 +750,43 @@ The film starts. It's quite frightening. You think you're getting used to it whe
 <<set $outside to 1>><<set $location to "forest">><<effects>>
 
 <<if $weather is "rain">>
-You walk to the forest, running between shelter to avoid the worst of the rain. "I like the rain," Robin says. "It's fun running between cover like this."
-<br><br>
+	You walk to the forest, running between shelter to avoid the worst of the rain. "I like the rain," Robin says. "It's fun running between cover like this."
+	<br><br>
 
-It's less wet under the protective branches of the trees. "The ground is too muddy for a picnic," Robin says. <<He>> looks at the nearby trees. "Look at that one! I bet I can climb it." <<He>> runs over to it and starts hauling <<himself>> up.
-<br><br>
+	It's less wet under the protective branches of the trees. "The ground is too muddy for a picnic," Robin says. <<He>> looks at the nearby trees. "Look at that one! I bet I can climb it." <<He>> runs over to it and starts hauling <<himself>> up.
+	<br><br>
+
+		<<if $pronoun is "m">>
+		<<His>> shorts are baggy. You'd be able to see right up them if you stood closer.
+		<br><br>
+		<<else>>
+		You'd be able to see right up <<his>> skirt if you stood closer.
+		<br><br>
+		<</if>>
 
-	<<if $pronoun is "m">>
-	<<His>> shorts are baggy. You'd be able to see right up them if you stood closer.
+	<<link [[Stand beneath|Robin Forest Beneath]]>><<npcincr Robin lust 1>><</link>><<glust>><<promiscuous1>>
+	<br>
+	<<link [[Cheer from a distance|Robin Forest Cheer]]>><<npcincr Robin love 1>><</link>><<glove>>
+	<br>
+<<elseif $weather is "snow">>
+	You walk to the forest, snow falling all around. "I love the snow," Robin says, bobbing slightly. "I've brought some hot chocolate to keep warm."
 	<br><br>
-	<<else>>
-	You'd be able to see right up <<his>> skirt if you stood closer.
+
+	"We can't have a proper picnic in the snow though," Robin says. <<He>> looks at the nearby trees. "Look at that one! I bet I can climb it." <<He>> runs over to it and starts hauling <<himself>> up.
 	<br><br>
-	<</if>>
 
-<<link [[Stand beneath|Robin Forest Beneath]]>><<npcincr Robin lust 1>><</link>><<glust>><<promiscuous1>>
-<br>
-<<link [[Cheer from a distance|Robin Forest Cheer]]>><<npcincr Robin love 1>><</link>><<glove>>
-<br>
+		<<if $pronoun is "m">>
+		<<His>> shorts are baggy. You'd be able to see right up them if you stood closer.
+		<br><br>
+		<<else>>
+		You'd be able to see right up <<his>> skirt if you stood closer.
+		<br><br>
+		<</if>>
+
+	<<link [[Stand beneath|Robin Forest Beneath]]>><<npcincr Robin lust 1>><</link>><<glust>><<promiscuous1>>
+	<br>
+	<<link [[Cheer from a distance|Robin Forest Cheer]]>><<npcincr Robin love 1>><</link>><<glove>>
+	<br>
 
 <<elseif $weather is "overcast">>
 
@@ -1122,9 +1141,9 @@ You stand right beneath <<him>>.
 <</if>>
 <<promiscuity1>>
 <br><br>
-You cheer Robin on as <<he>> climbs the tree. <<He>> makes it to the top. "I knew I could do it," <<he>> shouts. You can barely make <<him>> out in the canopy. "It's pretty wet up here. I should come down."
+You cheer Robin on as <<he>> climbs the tree. <<He>> makes it to the top. "I knew I could do it," <<he>> shouts. You can barely make <<him>> out in the canopy. "It's pretty <<if $weather is "rain">>wet<<else>>cold<</if>> up here. I should come down."
 <br><br>
-<<Hes>> panting by the time <<he>> reaches the floor. "That was fun, but I got pretty wet," <<he>> says. "Lets go home or I'll catch a cold."
+<<Hes>> panting by the time <<he>> reaches the floor. "That was fun, but I got <<if $weather is "rain">>pretty wet<<else>>a bit chilly<</if>>," <<he>> says. "Lets go home or I'll catch a cold."
 <br><br>
 Together you return to the orphanage.
 <br><br>
@@ -1133,9 +1152,9 @@ Together you return to the orphanage.
 :: Robin Forest Cheer [nobr]
 
 <<set $outside to 1>><<set $location to "forest">><<effects>>
-You cheer Robin on as <<he>> climbs the tree. <<He>> makes it to the top. "I knew I could do it," <<he>> shouts. You can barely make <<him>> out in the canopy. "It's pretty wet up here. I should come down."
+You cheer Robin on as <<he>> climbs the tree. <<He>> makes it to the top. "I knew I could do it," <<he>> shouts. You can barely make <<him>> out in the canopy. "It's pretty <<if $weather is "rain">>wet<<else>>cold<</if>> up here. I should come down."
 <br><br>
-<<Hes>> panting by the time <<he>> reaches the floor. "That was fun, but I got pretty wet," <<he>> says. "Lets go home or I'll catch a cold."
+<<Hes>> panting by the time <<he>> reaches the floor. "That was fun, but I got <<if $weather is "rain">>pretty wet<<else>>a bit chilly<</if>>," <<he>> says. "Lets go home or I'll catch a cold."
 <br><br>
 Together you return to the orphanage.
 <br><br>
diff --git a/game/overworld-town/special-whitney/main.twee b/game/overworld-town/special-whitney/main.twee
index 864f9b7c27dff7540426ba559b47bc61189692ef..c2c795ddd6ae4b71e9720271cbbe0389e78e9d2a 100644
--- a/game/overworld-town/special-whitney/main.twee
+++ b/game/overworld-town/special-whitney/main.twee
@@ -590,7 +590,7 @@ Whitney kicks you out from beneath the desk. You face up at a shocked Leighton.
 <<molested>>
 
 <<maninit>>
-<<He>> forces you to your knees and <<if $pronoun is "m">>unzips <<his>> fly,<<else>>lifts <<his>> skirt,<</if>> revealing <<his>><<if $NPCList[0].penis isnot "none">>penis<<else>>pussy<</if>>. "Open wide," <<he>> says. <<His>> friends cheer <<him>> on.
+<<He>> forces you to your knees and <<if $pronoun is "m">>unzips <<his>> fly,<<else>>lifts <<his>> skirt,<</if>> revealing <<his>> <<if $NPCList[0].penis isnot "none">>penis<<else>>pussy<</if>>. "Open wide," <<he>> says. <<His>> friends cheer <<him>> on.
 <br><br>
 
 <<npcoral>><<set $NPCList[0].lefthand to "hair">><<set $enemyanger to 70>>
@@ -604,7 +604,7 @@ Whitney kicks you out from beneath the desk. You face up at a shocked Leighton.
 <<neutral 1>>
 
 <<maninit>>
-You drop to your knees as <<he>> <<if $pronoun is "m">>unzips <<his>> fly,<<else>>lifts <<his>> skirt,<</if>> revealing <<his>><<if $NPCList[0].penis isnot "none">>penis<<else>>pussy<</if>>. "Open wide," <<he>> says. <<His>> friends cheer <<him>> on.
+You drop to your knees as <<he>> <<if $pronoun is "m">>unzips <<his>> fly,<<else>>lifts <<his>> skirt,<</if>> revealing <<his>> <<if $NPCList[0].penis isnot "none">>penis<<else>>pussy<</if>>. "Open wide," <<he>> says. <<His>> friends cheer <<him>> on.
 <<promiscuity4>>
 <br><br>
 
diff --git a/game/overworld-underground/loc-sewers/main.twee b/game/overworld-underground/loc-sewers/main.twee
index ff63b59860c4b9658efce4f57465e07fe8ad9b32..3ee3f8f95e06f0df15ff51cba3ec533dae5c4691 100644
--- a/game/overworld-underground/loc-sewers/main.twee
+++ b/game/overworld-underground/loc-sewers/main.twee
@@ -9,7 +9,7 @@ You can access several parts of town from here.
 	<<passoutdrain>>
 <<else>>
 	<<set $rng to random(1, 100)>>
-	<<if $weather is "rain" and $rng gte 75 and $eventskip is 0>>
+	<<if ($weather is "rain" or $weather is "snow") and $rng gte 75 and $eventskip is 0>>
 		<<eventsdrain>>
 	<<elseif $rng gte 92 and $eventskip is 0>>
 		<<eventsdrain>>
@@ -49,7 +49,7 @@ You can access several parts of town from here.
 	<<passoutdrain>>
 <<else>>
 	<<set $rng to random(1, 100)>>
-	<<if $weather is "rain" and $rng gte 75 and $eventskip is 0>>
+	<<if ($weather is "rain" or $weather is "snow") and $rng gte 75 and $eventskip is 0>>
 		<<eventsdrain>>
 	<<elseif $rng gte 92 and $eventskip is 0>>
 		<<eventsdrain>>
@@ -98,7 +98,7 @@ You can access several parts of town from here.
 	<<passoutdrain>>
 <<else>>
 	<<set $rng to random(1, 100)>>
-	<<if $weather is "rain" and $rng gte 75 and $eventskip is 0>>
+	<<if ($weather is "rain" or $weather is "snow") and $rng gte 75 and $eventskip is 0>>
 		<<eventsdrain>>
 	<<elseif $rng gte 92 and $eventskip is 0>>
 		<<eventsdrain>>
@@ -298,7 +298,7 @@ You are within the storm drain system, close to where it flows out into the sea.
 	<<passoutdrain>>
 <<else>>
 	<<set $rng to random(1, 100)>>
-	<<if $weather is "rain" and $rng gte 75 and $eventskip is 0>>
+	<<if ($weather is "rain" or $weather is "snow") and $rng gte 75 and $eventskip is 0>>
 		<<eventsdrain>>
 	<<elseif $rng gte 92 and $eventskip is 0>>
 		<<eventsdrain>>
diff --git a/game/special-masturbation/main.twee b/game/special-masturbation/main.twee
index 25f0b9b91a76eee2dd659f5a29d1f071bb36d37e..e530e76664c021d17852dd48d5ef4364d9dfe359 100644
--- a/game/special-masturbation/main.twee
+++ b/game/special-masturbation/main.twee
@@ -962,10 +962,10 @@ The bell rings, signifying the end of the lesson. You leave the classroom.
 <</if>>
 
 	<<if $exposed lte 0>>
-	<<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
+	<<maleicon>><<link [[Boy's Changing Room|School Boy Changing Room]]>><</link>>
 	<br>
 
-	<<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
+	<<femaleicon>><<link [[Girl's Changing Room|School Girl Changing Room]]>><</link>>
 	<br><br>
 	<</if>>
 
diff --git a/game/special-templates/main.twee b/game/special-templates/main.twee
index 84248b3bedd58876c21834dfb716cf2720852cee..77e143d0cec8a25423fb3511ad632f29f6ac11cd 100644
--- a/game/special-templates/main.twee
+++ b/game/special-templates/main.twee
@@ -1,12 +1,9 @@
 :: Test [nobr]
-<<set $location to "underground">><<effects>>
+<<set $location to "underground">><<set $outside to 1>><<effects>>
 <<endevent>>
+<<endcombat>>
+
 
-<<set $test to 1>>
-<<set $test to _sldlgldjssdlj>>
-<<if $test is undefined>>
-	Success.
-<</if>>
 
 
 :: Test2 [nobr]
diff --git a/img/clothes/face/swimgoggles/full.png b/img/clothes/face/swimgoggles/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1e3929c817e63c034a8f7c30c7c35a9457adc1c
Binary files /dev/null and b/img/clothes/face/swimgoggles/full.png differ
diff --git a/img/clothes/feet/flippers/full.png b/img/clothes/feet/flippers/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..3befbf630c3d5a4c3157afe6d46fee938b91906c
Binary files /dev/null and b/img/clothes/feet/flippers/full.png differ
diff --git a/img/clothes/head/beanie/full.png b/img/clothes/head/beanie/full.png
index 25de9c5bbe6420ce4e115eec6782e2fec55ff847..6157f3624d068f1421c561facc7452552890b643 100644
Binary files a/img/clothes/head/beanie/full.png and b/img/clothes/head/beanie/full.png differ
diff --git a/img/clothes/lower/diving/frayed.png b/img/clothes/lower/diving/frayed.png
new file mode 100644
index 0000000000000000000000000000000000000000..f4b78e85e09a908c4153b27b7fd46ba8d9b1508b
Binary files /dev/null and b/img/clothes/lower/diving/frayed.png differ
diff --git a/img/clothes/lower/diving/full.png b/img/clothes/lower/diving/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc87f74d47748c20440e22df23e5f1fe6fbb4474
Binary files /dev/null and b/img/clothes/lower/diving/full.png differ
diff --git a/img/clothes/lower/diving/tattered.png b/img/clothes/lower/diving/tattered.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b6c96988cfbc7ff9a40e942bc28c1d19ad6d942
Binary files /dev/null and b/img/clothes/lower/diving/tattered.png differ
diff --git a/img/clothes/lower/diving/torn.png b/img/clothes/lower/diving/torn.png
new file mode 100644
index 0000000000000000000000000000000000000000..af6f9aaf9117465e74fe284b8c504e03b4a33744
Binary files /dev/null and b/img/clothes/lower/diving/torn.png differ
diff --git a/img/clothes/lower/gothic/frayed.png b/img/clothes/lower/gothic/frayed.png
index 2a48f14266dfc5c922ae1f23c045534b1b0f48e6..a92fb9dcc04d8f8958507dd2ff44cf82fa498940 100644
Binary files a/img/clothes/lower/gothic/frayed.png and b/img/clothes/lower/gothic/frayed.png differ
diff --git a/img/clothes/lower/gothic/full.png b/img/clothes/lower/gothic/full.png
index e44487fbeea1286e2f564004222668f5e9ebd214..d27e4da5d1f04bfbf9ae738235df6ea3f4fedfb7 100644
Binary files a/img/clothes/lower/gothic/full.png and b/img/clothes/lower/gothic/full.png differ
diff --git a/img/clothes/lower/gothic/tattered.png b/img/clothes/lower/gothic/tattered.png
index 186b620d71257e98d2b3e21355c7bf075f1116be..b31404542843fa3942ff56600d72eba103b3d7a5 100644
Binary files a/img/clothes/lower/gothic/tattered.png and b/img/clothes/lower/gothic/tattered.png differ
diff --git a/img/clothes/lower/gothic/torn.png b/img/clothes/lower/gothic/torn.png
index bf5be04ffe134d7e4306826a761a7c1424337b54..97502dde28921afd35e99238470b0258e8d8a4d0 100644
Binary files a/img/clothes/lower/gothic/torn.png and b/img/clothes/lower/gothic/torn.png differ
diff --git a/img/clothes/lower/gothicold/frayed.png b/img/clothes/lower/gothicold/frayed.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a48f14266dfc5c922ae1f23c045534b1b0f48e6
Binary files /dev/null and b/img/clothes/lower/gothicold/frayed.png differ
diff --git a/img/clothes/lower/gothicold/full.png b/img/clothes/lower/gothicold/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..e44487fbeea1286e2f564004222668f5e9ebd214
Binary files /dev/null and b/img/clothes/lower/gothicold/full.png differ
diff --git a/img/clothes/lower/gothicold/tattered.png b/img/clothes/lower/gothicold/tattered.png
new file mode 100644
index 0000000000000000000000000000000000000000..186b620d71257e98d2b3e21355c7bf075f1116be
Binary files /dev/null and b/img/clothes/lower/gothicold/tattered.png differ
diff --git a/img/clothes/lower/gothicold/torn.png b/img/clothes/lower/gothicold/torn.png
new file mode 100644
index 0000000000000000000000000000000000000000..bf5be04ffe134d7e4306826a761a7c1424337b54
Binary files /dev/null and b/img/clothes/lower/gothicold/torn.png differ
diff --git a/img/clothes/upper/diving/0.png b/img/clothes/upper/diving/0.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4f388b75abed4e18d42f03e7f3212cd48a30d6c
Binary files /dev/null and b/img/clothes/upper/diving/0.png differ
diff --git a/img/clothes/upper/diving/1.png b/img/clothes/upper/diving/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4f388b75abed4e18d42f03e7f3212cd48a30d6c
Binary files /dev/null and b/img/clothes/upper/diving/1.png differ
diff --git a/img/clothes/upper/diving/2.png b/img/clothes/upper/diving/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..7642ca5770dadc622b70f2f06ef364158b2f250e
Binary files /dev/null and b/img/clothes/upper/diving/2.png differ
diff --git a/img/clothes/upper/diving/3.png b/img/clothes/upper/diving/3.png
new file mode 100644
index 0000000000000000000000000000000000000000..c95dd024a45c59c628604900aa5a41f08663419a
Binary files /dev/null and b/img/clothes/upper/diving/3.png differ
diff --git a/img/clothes/upper/diving/4.png b/img/clothes/upper/diving/4.png
new file mode 100644
index 0000000000000000000000000000000000000000..854066139939786450494fbe4c242bd32cd7a302
Binary files /dev/null and b/img/clothes/upper/diving/4.png differ
diff --git a/img/clothes/upper/diving/5.png b/img/clothes/upper/diving/5.png
new file mode 100644
index 0000000000000000000000000000000000000000..854066139939786450494fbe4c242bd32cd7a302
Binary files /dev/null and b/img/clothes/upper/diving/5.png differ
diff --git a/img/clothes/upper/diving/frayed.png b/img/clothes/upper/diving/frayed.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f9636586ba67923671a1a21dea5683841c80236
Binary files /dev/null and b/img/clothes/upper/diving/frayed.png differ
diff --git a/img/clothes/upper/diving/full.png b/img/clothes/upper/diving/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..0da18215c56d105c4b05ee68e03adce2a7c1fea8
Binary files /dev/null and b/img/clothes/upper/diving/full.png differ
diff --git a/img/clothes/upper/diving/left.png b/img/clothes/upper/diving/left.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4de529bd775ec3124170091353e268453426891
Binary files /dev/null and b/img/clothes/upper/diving/left.png differ
diff --git a/img/clothes/upper/diving/left_cover.png b/img/clothes/upper/diving/left_cover.png
new file mode 100644
index 0000000000000000000000000000000000000000..850f1d4e8804154cbe793e9cad2b6c360544e234
Binary files /dev/null and b/img/clothes/upper/diving/left_cover.png differ
diff --git a/img/clothes/upper/diving/right.png b/img/clothes/upper/diving/right.png
new file mode 100644
index 0000000000000000000000000000000000000000..e652fc7c452f15caff0e7f0ef1b8ea93b00e3077
Binary files /dev/null and b/img/clothes/upper/diving/right.png differ
diff --git a/img/clothes/upper/diving/right_cover.png b/img/clothes/upper/diving/right_cover.png
new file mode 100644
index 0000000000000000000000000000000000000000..25b069d207c6332bb422b74a3fad76cbd448ca17
Binary files /dev/null and b/img/clothes/upper/diving/right_cover.png differ
diff --git a/img/clothes/upper/diving/tattered.png b/img/clothes/upper/diving/tattered.png
new file mode 100644
index 0000000000000000000000000000000000000000..71faf385ced6b110811f16199a311192671a5f1e
Binary files /dev/null and b/img/clothes/upper/diving/tattered.png differ
diff --git a/img/clothes/upper/diving/torn.png b/img/clothes/upper/diving/torn.png
new file mode 100644
index 0000000000000000000000000000000000000000..02d18f61172f66339d3b2c26dae2a66d5bdf0c1a
Binary files /dev/null and b/img/clothes/upper/diving/torn.png differ
diff --git a/img/clothes/upper/gothic/frayed.png b/img/clothes/upper/gothic/frayed.png
index 7f4579b6d40fec7ba0c2e22ab7872610dcd12028..5f3dbf65de0cea2275927342f2b034b6566cd163 100644
Binary files a/img/clothes/upper/gothic/frayed.png and b/img/clothes/upper/gothic/frayed.png differ
diff --git a/img/clothes/upper/gothic/full.png b/img/clothes/upper/gothic/full.png
index f3d223102866dd388ac553b55e6f53edd7551f0c..84b20ae33f758ca21436e8e42ea70e639929e355 100644
Binary files a/img/clothes/upper/gothic/full.png and b/img/clothes/upper/gothic/full.png differ
diff --git a/img/clothes/upper/gothic/left.png b/img/clothes/upper/gothic/left.png
index 4af2d38877bdb0ab39e8f10f2723bc9fc4b5e59d..3397c6eea5e16c8438530e5868bd1ab71ea541da 100644
Binary files a/img/clothes/upper/gothic/left.png and b/img/clothes/upper/gothic/left.png differ
diff --git a/img/clothes/upper/gothic/left_cover.png b/img/clothes/upper/gothic/left_cover.png
index 7e756671ec5101c913ae849c8b13f1a5bf88ada2..29eaff861e0dfcce7aeeb59a11a1614f02c448b5 100644
Binary files a/img/clothes/upper/gothic/left_cover.png and b/img/clothes/upper/gothic/left_cover.png differ
diff --git a/img/clothes/upper/gothic/right.png b/img/clothes/upper/gothic/right.png
index d1b7ff826d18b0984c145fa1296c5640fd0f9f7f..5b51b69826e6f7298c124a7fd0ab122b3d6e6ad4 100644
Binary files a/img/clothes/upper/gothic/right.png and b/img/clothes/upper/gothic/right.png differ
diff --git a/img/clothes/upper/gothic/right_cover.png b/img/clothes/upper/gothic/right_cover.png
index 9436bdc5d926fca3b4b269c12b156749ce58552e..8e3ae0e0219708de8cede8a88ae502ab064a4f1f 100644
Binary files a/img/clothes/upper/gothic/right_cover.png and b/img/clothes/upper/gothic/right_cover.png differ
diff --git a/img/clothes/upper/gothic/tattered.png b/img/clothes/upper/gothic/tattered.png
index 0ce83f703ff0a4977f4f8403fbea01e242c30c6e..5e9f8158f4d8285532d365c1100eb9d48d9927b1 100644
Binary files a/img/clothes/upper/gothic/tattered.png and b/img/clothes/upper/gothic/tattered.png differ
diff --git a/img/clothes/upper/gothic/torn.png b/img/clothes/upper/gothic/torn.png
index d59335df93d841a51f60f8e84cfe1aae85c8fd3a..003c39c8f1764b3ba58472155223dd2e10146b8d 100644
Binary files a/img/clothes/upper/gothic/torn.png and b/img/clothes/upper/gothic/torn.png differ
diff --git a/img/clothes/upper/gothicold/frayed.png b/img/clothes/upper/gothicold/frayed.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f4579b6d40fec7ba0c2e22ab7872610dcd12028
Binary files /dev/null and b/img/clothes/upper/gothicold/frayed.png differ
diff --git a/img/clothes/upper/gothicold/full.png b/img/clothes/upper/gothicold/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3d223102866dd388ac553b55e6f53edd7551f0c
Binary files /dev/null and b/img/clothes/upper/gothicold/full.png differ
diff --git a/img/clothes/upper/gothicold/left.png b/img/clothes/upper/gothicold/left.png
new file mode 100644
index 0000000000000000000000000000000000000000..4af2d38877bdb0ab39e8f10f2723bc9fc4b5e59d
Binary files /dev/null and b/img/clothes/upper/gothicold/left.png differ
diff --git a/img/clothes/upper/gothicold/left_cover.png b/img/clothes/upper/gothicold/left_cover.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e756671ec5101c913ae849c8b13f1a5bf88ada2
Binary files /dev/null and b/img/clothes/upper/gothicold/left_cover.png differ
diff --git a/img/clothes/upper/gothicold/right.png b/img/clothes/upper/gothicold/right.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1b7ff826d18b0984c145fa1296c5640fd0f9f7f
Binary files /dev/null and b/img/clothes/upper/gothicold/right.png differ
diff --git a/img/clothes/upper/gothicold/right_cover.png b/img/clothes/upper/gothicold/right_cover.png
new file mode 100644
index 0000000000000000000000000000000000000000..9436bdc5d926fca3b4b269c12b156749ce58552e
Binary files /dev/null and b/img/clothes/upper/gothicold/right_cover.png differ
diff --git a/img/clothes/upper/gothicold/tattered.png b/img/clothes/upper/gothicold/tattered.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ce83f703ff0a4977f4f8403fbea01e242c30c6e
Binary files /dev/null and b/img/clothes/upper/gothicold/tattered.png differ
diff --git a/img/clothes/upper/gothicold/torn.png b/img/clothes/upper/gothicold/torn.png
new file mode 100644
index 0000000000000000000000000000000000000000..d59335df93d841a51f60f8e84cfe1aae85c8fd3a
Binary files /dev/null and b/img/clothes/upper/gothicold/torn.png differ
diff --git a/img/misc/arcade_dawn.png b/img/misc/arcade_dawn.png
deleted file mode 100644
index c2c96051310476020bb00faa6fdf2b122162749f..0000000000000000000000000000000000000000
Binary files a/img/misc/arcade_dawn.png and /dev/null differ
diff --git a/img/misc/arcade_day.png b/img/misc/arcade_day.png
deleted file mode 100644
index 4d0b58bdcc55652f9d3d8183fc0f7e1ff9dba180..0000000000000000000000000000000000000000
Binary files a/img/misc/arcade_day.png and /dev/null differ
diff --git a/img/misc/arcade_dusk.png b/img/misc/arcade_dusk.png
deleted file mode 100644
index e45c8dc64c9f3f414ba5d094433009eaada10e83..0000000000000000000000000000000000000000
Binary files a/img/misc/arcade_dusk.png and /dev/null differ
diff --git a/img/misc/arcade_night.png b/img/misc/arcade_night.png
deleted file mode 100644
index b1e9647ec4b7cec6957b3f2294b21a4b9b03b62e..0000000000000000000000000000000000000000
Binary files a/img/misc/arcade_night.png and /dev/null differ
diff --git a/img/misc/icon/alley.png b/img/misc/icon/alley.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ca553b7593afe8eb9f7c8ccf6495641e888c48f
Binary files /dev/null and b/img/misc/icon/alley.png differ
diff --git a/img/misc/icon/arcade.gif b/img/misc/icon/arcade.gif
new file mode 100644
index 0000000000000000000000000000000000000000..61a3b40d8580a67843936807afb9fe61a148ae20
Binary files /dev/null and b/img/misc/icon/arcade.gif differ
diff --git a/img/misc/icon/dancestudio.png b/img/misc/icon/dancestudio.png
new file mode 100644
index 0000000000000000000000000000000000000000..891d986808d23f95a2f5fe771cf04890d427e769
Binary files /dev/null and b/img/misc/icon/dancestudio.png differ
diff --git a/img/misc/icon/dorenflat.png b/img/misc/icon/dorenflat.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0029f0ef679f79f3df8bda83b6886db4544c6a8
Binary files /dev/null and b/img/misc/icon/dorenflat.png differ
diff --git a/img/misc/icon/female.png b/img/misc/icon/female.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b3a5240c034f4519a6e70fd6fd47476d5391642
Binary files /dev/null and b/img/misc/icon/female.png differ
diff --git a/img/misc/icon/headdesk.png b/img/misc/icon/headdesk.png
new file mode 100644
index 0000000000000000000000000000000000000000..175c71498eeb113ed4e607d6db437dc61e91145a
Binary files /dev/null and b/img/misc/icon/headdesk.png differ
diff --git a/img/misc/icon/male.png b/img/misc/icon/male.png
new file mode 100644
index 0000000000000000000000000000000000000000..82c68a999e7838957ebe149aebfa2323bb73f893
Binary files /dev/null and b/img/misc/icon/male.png differ
diff --git a/img/misc/icon/museum.png b/img/misc/icon/museum.png
new file mode 100644
index 0000000000000000000000000000000000000000..4655d59b2139041e1903c3315252f34068b9db3a
Binary files /dev/null and b/img/misc/icon/museum.png differ
diff --git a/img/misc/icon/orphanage.png b/img/misc/icon/orphanage.png
new file mode 100644
index 0000000000000000000000000000000000000000..c20eaf511d849e1ef82937ccb5e42dac9f0929e2
Binary files /dev/null and b/img/misc/icon/orphanage.png differ
diff --git a/img/misc/icon/roadday.png b/img/misc/icon/roadday.png
new file mode 100644
index 0000000000000000000000000000000000000000..407e4a17ee7a5f3b124373e21218d007b2de49de
Binary files /dev/null and b/img/misc/icon/roadday.png differ
diff --git a/img/misc/icon/roadnight.png b/img/misc/icon/roadnight.png
new file mode 100644
index 0000000000000000000000000000000000000000..28578ed35e086435a2ab7d47b4ce47822becc8dd
Binary files /dev/null and b/img/misc/icon/roadnight.png differ
diff --git a/img/misc/icon/school.png b/img/misc/icon/school.png
new file mode 100644
index 0000000000000000000000000000000000000000..c119820f29807797c91f609880e2b801b444466b
Binary files /dev/null and b/img/misc/icon/school.png differ
diff --git a/img/misc/icon/soupkitchen.png b/img/misc/icon/soupkitchen.png
new file mode 100644
index 0000000000000000000000000000000000000000..c75ed390092f076bc95eb1b4aa626f9ec78ab8c9
Binary files /dev/null and b/img/misc/icon/soupkitchen.png differ
diff --git a/img/misc/icon/spa.png b/img/misc/icon/spa.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e8900f86422d436849ac4bec63ef9cca950190a
Binary files /dev/null and b/img/misc/icon/spa.png differ
diff --git a/img/misc/icon/stripclub.gif b/img/misc/icon/stripclub.gif
new file mode 100644
index 0000000000000000000000000000000000000000..24ca15f5d4bba9cf242c178184bffcb4579c091a
Binary files /dev/null and b/img/misc/icon/stripclub.gif differ
diff --git a/img/misc/alley_blood.gif b/img/misc/normal/alley_blood.gif
similarity index 100%
rename from img/misc/alley_blood.gif
rename to img/misc/normal/alley_blood.gif
diff --git a/img/misc/alley_dawn.gif b/img/misc/normal/alley_dawn.gif
similarity index 100%
rename from img/misc/alley_dawn.gif
rename to img/misc/normal/alley_dawn.gif
diff --git a/img/misc/alley_day.gif b/img/misc/normal/alley_day.gif
similarity index 100%
rename from img/misc/alley_day.gif
rename to img/misc/normal/alley_day.gif
diff --git a/img/misc/alley_dusk.gif b/img/misc/normal/alley_dusk.gif
similarity index 100%
rename from img/misc/alley_dusk.gif
rename to img/misc/normal/alley_dusk.gif
diff --git a/img/misc/alley_night.gif b/img/misc/normal/alley_night.gif
similarity index 100%
rename from img/misc/alley_night.gif
rename to img/misc/normal/alley_night.gif
diff --git a/img/misc/normal/arcade_dawn.png b/img/misc/normal/arcade_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..d17bff5b2f6a19ba4c64ed06957a10f0200f48c2
Binary files /dev/null and b/img/misc/normal/arcade_dawn.png differ
diff --git a/img/misc/normal/arcade_day.png b/img/misc/normal/arcade_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b46225413dd9bbfe581ec830e2932eddb3af005
Binary files /dev/null and b/img/misc/normal/arcade_day.png differ
diff --git a/img/misc/normal/arcade_dusk.png b/img/misc/normal/arcade_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbedec59ed686790b2bd44772a85d0673adcd8b2
Binary files /dev/null and b/img/misc/normal/arcade_dusk.png differ
diff --git a/img/misc/normal/arcade_night.png b/img/misc/normal/arcade_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..692cb71e2eaf662d78609f42e1d0acb325ad9609
Binary files /dev/null and b/img/misc/normal/arcade_night.png differ
diff --git a/img/misc/asylumdawnslow.gif b/img/misc/normal/asylumdawnslow.gif
similarity index 100%
rename from img/misc/asylumdawnslow.gif
rename to img/misc/normal/asylumdawnslow.gif
diff --git a/img/misc/asylumdawnvfast.gif b/img/misc/normal/asylumdawnvfast.gif
similarity index 100%
rename from img/misc/asylumdawnvfast.gif
rename to img/misc/normal/asylumdawnvfast.gif
diff --git a/img/misc/asylumdayslow.gif b/img/misc/normal/asylumdayslow.gif
similarity index 100%
rename from img/misc/asylumdayslow.gif
rename to img/misc/normal/asylumdayslow.gif
diff --git a/img/misc/asylumdayvfast.gif b/img/misc/normal/asylumdayvfast.gif
similarity index 100%
rename from img/misc/asylumdayvfast.gif
rename to img/misc/normal/asylumdayvfast.gif
diff --git a/img/misc/asylumduskslow.gif b/img/misc/normal/asylumduskslow.gif
similarity index 100%
rename from img/misc/asylumduskslow.gif
rename to img/misc/normal/asylumduskslow.gif
diff --git a/img/misc/asylumduskvfast.gif b/img/misc/normal/asylumduskvfast.gif
similarity index 100%
rename from img/misc/asylumduskvfast.gif
rename to img/misc/normal/asylumduskvfast.gif
diff --git a/img/misc/asylumnightslow.gif b/img/misc/normal/asylumnightslow.gif
similarity index 100%
rename from img/misc/asylumnightslow.gif
rename to img/misc/normal/asylumnightslow.gif
diff --git a/img/misc/asylumnightvfast.gif b/img/misc/normal/asylumnightvfast.gif
similarity index 100%
rename from img/misc/asylumnightvfast.gif
rename to img/misc/normal/asylumnightvfast.gif
diff --git a/img/misc/beachdawn.gif b/img/misc/normal/beachdawn.gif
similarity index 100%
rename from img/misc/beachdawn.gif
rename to img/misc/normal/beachdawn.gif
diff --git a/img/misc/beachday.gif b/img/misc/normal/beachday.gif
similarity index 100%
rename from img/misc/beachday.gif
rename to img/misc/normal/beachday.gif
diff --git a/img/misc/beachdusk.gif b/img/misc/normal/beachdusk.gif
similarity index 100%
rename from img/misc/beachdusk.gif
rename to img/misc/normal/beachdusk.gif
diff --git a/img/misc/beachnight.gif b/img/misc/normal/beachnight.gif
similarity index 100%
rename from img/misc/beachnight.gif
rename to img/misc/normal/beachnight.gif
diff --git a/img/misc/brothel_dawn.png b/img/misc/normal/brothel_dawn.png
similarity index 100%
rename from img/misc/brothel_dawn.png
rename to img/misc/normal/brothel_dawn.png
diff --git a/img/misc/brothel_day.png b/img/misc/normal/brothel_day.png
similarity index 100%
rename from img/misc/brothel_day.png
rename to img/misc/normal/brothel_day.png
diff --git a/img/misc/brothel_dusk.png b/img/misc/normal/brothel_dusk.png
similarity index 100%
rename from img/misc/brothel_dusk.png
rename to img/misc/normal/brothel_dusk.png
diff --git a/img/misc/brothel_night.png b/img/misc/normal/brothel_night.png
similarity index 100%
rename from img/misc/brothel_night.png
rename to img/misc/normal/brothel_night.png
diff --git a/img/misc/cabin.gif b/img/misc/normal/cabin.gif
similarity index 100%
rename from img/misc/cabin.gif
rename to img/misc/normal/cabin.gif
diff --git a/img/misc/cabindawn.gif b/img/misc/normal/cabindawn.gif
similarity index 100%
rename from img/misc/cabindawn.gif
rename to img/misc/normal/cabindawn.gif
diff --git a/img/misc/cabinday.gif b/img/misc/normal/cabinday.gif
similarity index 100%
rename from img/misc/cabinday.gif
rename to img/misc/normal/cabinday.gif
diff --git a/img/misc/cabindusk.gif b/img/misc/normal/cabindusk.gif
similarity index 100%
rename from img/misc/cabindusk.gif
rename to img/misc/normal/cabindusk.gif
diff --git a/img/misc/cabinnight.gif b/img/misc/normal/cabinnight.gif
similarity index 100%
rename from img/misc/cabinnight.gif
rename to img/misc/normal/cabinnight.gif
diff --git a/img/misc/cafe_construction_dawn.png b/img/misc/normal/cafe_construction_dawn.png
similarity index 100%
rename from img/misc/cafe_construction_dawn.png
rename to img/misc/normal/cafe_construction_dawn.png
diff --git a/img/misc/cafe_construction_day.png b/img/misc/normal/cafe_construction_day.png
similarity index 100%
rename from img/misc/cafe_construction_day.png
rename to img/misc/normal/cafe_construction_day.png
diff --git a/img/misc/cafe_construction_dusk.png b/img/misc/normal/cafe_construction_dusk.png
similarity index 100%
rename from img/misc/cafe_construction_dusk.png
rename to img/misc/normal/cafe_construction_dusk.png
diff --git a/img/misc/cafe_construction_night.png b/img/misc/normal/cafe_construction_night.png
similarity index 100%
rename from img/misc/cafe_construction_night.png
rename to img/misc/normal/cafe_construction_night.png
diff --git a/img/misc/cafe_dawn.png b/img/misc/normal/cafe_dawn.png
similarity index 100%
rename from img/misc/cafe_dawn.png
rename to img/misc/normal/cafe_dawn.png
diff --git a/img/misc/cafe_day.png b/img/misc/normal/cafe_day.png
similarity index 100%
rename from img/misc/cafe_day.png
rename to img/misc/normal/cafe_day.png
diff --git a/img/misc/cafe_dusk.png b/img/misc/normal/cafe_dusk.png
similarity index 100%
rename from img/misc/cafe_dusk.png
rename to img/misc/normal/cafe_dusk.png
diff --git a/img/misc/cafe_night.png b/img/misc/normal/cafe_night.png
similarity index 100%
rename from img/misc/cafe_night.png
rename to img/misc/normal/cafe_night.png
diff --git a/img/misc/cafe_renovated_dawn.png b/img/misc/normal/cafe_renovated_dawn.png
similarity index 100%
rename from img/misc/cafe_renovated_dawn.png
rename to img/misc/normal/cafe_renovated_dawn.png
diff --git a/img/misc/cafe_renovated_day.png b/img/misc/normal/cafe_renovated_day.png
similarity index 100%
rename from img/misc/cafe_renovated_day.png
rename to img/misc/normal/cafe_renovated_day.png
diff --git a/img/misc/cafe_renovated_dusk.png b/img/misc/normal/cafe_renovated_dusk.png
similarity index 100%
rename from img/misc/cafe_renovated_dusk.png
rename to img/misc/normal/cafe_renovated_dusk.png
diff --git a/img/misc/cafe_renovated_night.png b/img/misc/normal/cafe_renovated_night.png
similarity index 100%
rename from img/misc/cafe_renovated_night.png
rename to img/misc/normal/cafe_renovated_night.png
diff --git a/img/misc/compound_dawn.gif b/img/misc/normal/compound_dawn.gif
similarity index 100%
rename from img/misc/compound_dawn.gif
rename to img/misc/normal/compound_dawn.gif
diff --git a/img/misc/compound_day.gif b/img/misc/normal/compound_day.gif
similarity index 100%
rename from img/misc/compound_day.gif
rename to img/misc/normal/compound_day.gif
diff --git a/img/misc/compound_dusk.gif b/img/misc/normal/compound_dusk.gif
similarity index 100%
rename from img/misc/compound_dusk.gif
rename to img/misc/normal/compound_dusk.gif
diff --git a/img/misc/compound_night.gif b/img/misc/normal/compound_night.gif
similarity index 100%
rename from img/misc/compound_night.gif
rename to img/misc/normal/compound_night.gif
diff --git a/img/misc/dance_studio_dawn.png b/img/misc/normal/dance_studio_dawn.png
similarity index 100%
rename from img/misc/dance_studio_dawn.png
rename to img/misc/normal/dance_studio_dawn.png
diff --git a/img/misc/dance_studio_day.png b/img/misc/normal/dance_studio_day.png
similarity index 100%
rename from img/misc/dance_studio_day.png
rename to img/misc/normal/dance_studio_day.png
diff --git a/img/misc/dance_studio_dusk.png b/img/misc/normal/dance_studio_dusk.png
similarity index 100%
rename from img/misc/dance_studio_dusk.png
rename to img/misc/normal/dance_studio_dusk.png
diff --git a/img/misc/dance_studio_night.png b/img/misc/normal/dance_studio_night.png
similarity index 100%
rename from img/misc/dance_studio_night.png
rename to img/misc/normal/dance_studio_night.png
diff --git a/img/misc/deepunderground.png b/img/misc/normal/deepunderground.png
similarity index 100%
rename from img/misc/deepunderground.png
rename to img/misc/normal/deepunderground.png
diff --git a/img/misc/docks_dawn.png b/img/misc/normal/docks_dawn.png
similarity index 100%
rename from img/misc/docks_dawn.png
rename to img/misc/normal/docks_dawn.png
diff --git a/img/misc/docks_day.png b/img/misc/normal/docks_day.png
similarity index 100%
rename from img/misc/docks_day.png
rename to img/misc/normal/docks_day.png
diff --git a/img/misc/docks_dusk.png b/img/misc/normal/docks_dusk.png
similarity index 100%
rename from img/misc/docks_dusk.png
rename to img/misc/normal/docks_dusk.png
diff --git a/img/misc/docks_night.png b/img/misc/normal/docks_night.png
similarity index 100%
rename from img/misc/docks_night.png
rename to img/misc/normal/docks_night.png
diff --git a/img/misc/farm_dawn.png b/img/misc/normal/farm_dawn.png
similarity index 100%
rename from img/misc/farm_dawn.png
rename to img/misc/normal/farm_dawn.png
diff --git a/img/misc/farm_day.png b/img/misc/normal/farm_day.png
similarity index 100%
rename from img/misc/farm_day.png
rename to img/misc/normal/farm_day.png
diff --git a/img/misc/farm_dusk.png b/img/misc/normal/farm_dusk.png
similarity index 100%
rename from img/misc/farm_dusk.png
rename to img/misc/normal/farm_dusk.png
diff --git a/img/misc/farm_night.png b/img/misc/normal/farm_night.png
similarity index 100%
rename from img/misc/farm_night.png
rename to img/misc/normal/farm_night.png
diff --git a/img/misc/forest_shop_dawn.png b/img/misc/normal/forest_shop_dawn.png
similarity index 100%
rename from img/misc/forest_shop_dawn.png
rename to img/misc/normal/forest_shop_dawn.png
diff --git a/img/misc/forest_shop_day.png b/img/misc/normal/forest_shop_day.png
similarity index 100%
rename from img/misc/forest_shop_day.png
rename to img/misc/normal/forest_shop_day.png
diff --git a/img/misc/forest_shop_dusk.png b/img/misc/normal/forest_shop_dusk.png
similarity index 100%
rename from img/misc/forest_shop_dusk.png
rename to img/misc/normal/forest_shop_dusk.png
diff --git a/img/misc/forest_shop_night.png b/img/misc/normal/forest_shop_night.png
similarity index 100%
rename from img/misc/forest_shop_night.png
rename to img/misc/normal/forest_shop_night.png
diff --git a/img/misc/forestbloodmoon.gif b/img/misc/normal/forestbloodmoon.gif
similarity index 100%
rename from img/misc/forestbloodmoon.gif
rename to img/misc/normal/forestbloodmoon.gif
diff --git a/img/misc/forestdawn.png b/img/misc/normal/forestdawn.png
similarity index 100%
rename from img/misc/forestdawn.png
rename to img/misc/normal/forestdawn.png
diff --git a/img/misc/forestday.gif b/img/misc/normal/forestday.gif
similarity index 100%
rename from img/misc/forestday.gif
rename to img/misc/normal/forestday.gif
diff --git a/img/misc/forestdusk.gif b/img/misc/normal/forestdusk.gif
similarity index 100%
rename from img/misc/forestdusk.gif
rename to img/misc/normal/forestdusk.gif
diff --git a/img/misc/forestnight.png b/img/misc/normal/forestnight.png
similarity index 100%
rename from img/misc/forestnight.png
rename to img/misc/normal/forestnight.png
diff --git a/img/misc/homedawn.gif b/img/misc/normal/homedawn.gif
similarity index 100%
rename from img/misc/homedawn.gif
rename to img/misc/normal/homedawn.gif
diff --git a/img/misc/homeday.gif b/img/misc/normal/homeday.gif
similarity index 100%
rename from img/misc/homeday.gif
rename to img/misc/normal/homeday.gif
diff --git a/img/misc/homedusk.gif b/img/misc/normal/homedusk.gif
similarity index 100%
rename from img/misc/homedusk.gif
rename to img/misc/normal/homedusk.gif
diff --git a/img/misc/homenight.gif b/img/misc/normal/homenight.gif
similarity index 100%
rename from img/misc/homenight.gif
rename to img/misc/normal/homenight.gif
diff --git a/img/misc/hospital_dawn.png b/img/misc/normal/hospital_dawn.png
similarity index 100%
rename from img/misc/hospital_dawn.png
rename to img/misc/normal/hospital_dawn.png
diff --git a/img/misc/hospital_day.png b/img/misc/normal/hospital_day.png
similarity index 100%
rename from img/misc/hospital_day.png
rename to img/misc/normal/hospital_day.png
diff --git a/img/misc/hospital_dusk.png b/img/misc/normal/hospital_dusk.png
similarity index 100%
rename from img/misc/hospital_dusk.png
rename to img/misc/normal/hospital_dusk.png
diff --git a/img/misc/hospital_night.png b/img/misc/normal/hospital_night.png
similarity index 100%
rename from img/misc/hospital_night.png
rename to img/misc/normal/hospital_night.png
diff --git a/img/misc/normal/indust_alley_blood.gif b/img/misc/normal/indust_alley_blood.gif
new file mode 100644
index 0000000000000000000000000000000000000000..52a91d78b6cf834a9cf0f7be45daa04b01b2a3d6
Binary files /dev/null and b/img/misc/normal/indust_alley_blood.gif differ
diff --git a/img/misc/normal/indust_alley_dawn.gif b/img/misc/normal/indust_alley_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2c97e0313961d9f82b7fabb6c91864812b0fdeae
Binary files /dev/null and b/img/misc/normal/indust_alley_dawn.gif differ
diff --git a/img/misc/normal/indust_alley_day.gif b/img/misc/normal/indust_alley_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1792d9ae496a29c282fbe964a36372a210497f72
Binary files /dev/null and b/img/misc/normal/indust_alley_day.gif differ
diff --git a/img/misc/normal/indust_alley_dusk.gif b/img/misc/normal/indust_alley_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fadf6574407e98048589f099fc9902391b87ab36
Binary files /dev/null and b/img/misc/normal/indust_alley_dusk.gif differ
diff --git a/img/misc/normal/indust_alley_night.gif b/img/misc/normal/indust_alley_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..db2907c70d2bccd377e557ac56d3de7fc2a195eb
Binary files /dev/null and b/img/misc/normal/indust_alley_night.gif differ
diff --git a/img/misc/lakebloodmoon.gif b/img/misc/normal/lakebloodmoon.gif
similarity index 100%
rename from img/misc/lakebloodmoon.gif
rename to img/misc/normal/lakebloodmoon.gif
diff --git a/img/misc/lakedawn.gif b/img/misc/normal/lakedawn.gif
similarity index 100%
rename from img/misc/lakedawn.gif
rename to img/misc/normal/lakedawn.gif
diff --git a/img/misc/lakeday.gif b/img/misc/normal/lakeday.gif
similarity index 100%
rename from img/misc/lakeday.gif
rename to img/misc/normal/lakeday.gif
diff --git a/img/misc/lakedusk.gif b/img/misc/normal/lakedusk.gif
similarity index 100%
rename from img/misc/lakedusk.gif
rename to img/misc/normal/lakedusk.gif
diff --git a/img/misc/lakenight.gif b/img/misc/normal/lakenight.gif
similarity index 100%
rename from img/misc/lakenight.gif
rename to img/misc/normal/lakenight.gif
diff --git a/img/misc/landfilldawn.gif b/img/misc/normal/landfilldawn.gif
similarity index 100%
rename from img/misc/landfilldawn.gif
rename to img/misc/normal/landfilldawn.gif
diff --git a/img/misc/landfillday.gif b/img/misc/normal/landfillday.gif
similarity index 100%
rename from img/misc/landfillday.gif
rename to img/misc/normal/landfillday.gif
diff --git a/img/misc/landfilldusk.gif b/img/misc/normal/landfilldusk.gif
similarity index 100%
rename from img/misc/landfilldusk.gif
rename to img/misc/normal/landfilldusk.gif
diff --git a/img/misc/landfillnight.gif b/img/misc/normal/landfillnight.gif
similarity index 100%
rename from img/misc/landfillnight.gif
rename to img/misc/normal/landfillnight.gif
diff --git a/img/misc/moor_dawn.gif b/img/misc/normal/moor_dawn.gif
similarity index 100%
rename from img/misc/moor_dawn.gif
rename to img/misc/normal/moor_dawn.gif
diff --git a/img/misc/moor_day.gif b/img/misc/normal/moor_day.gif
similarity index 100%
rename from img/misc/moor_day.gif
rename to img/misc/normal/moor_day.gif
diff --git a/img/misc/moor_dusk.gif b/img/misc/normal/moor_dusk.gif
similarity index 100%
rename from img/misc/moor_dusk.gif
rename to img/misc/normal/moor_dusk.gif
diff --git a/img/misc/moor_night.gif b/img/misc/normal/moor_night.gif
similarity index 100%
rename from img/misc/moor_night.gif
rename to img/misc/normal/moor_night.gif
diff --git a/img/misc/museum_dawn.png b/img/misc/normal/museum_dawn.png
similarity index 100%
rename from img/misc/museum_dawn.png
rename to img/misc/normal/museum_dawn.png
diff --git a/img/misc/museum_day.png b/img/misc/normal/museum_day.png
similarity index 100%
rename from img/misc/museum_day.png
rename to img/misc/normal/museum_day.png
diff --git a/img/misc/museum_dusk.png b/img/misc/normal/museum_dusk.png
similarity index 100%
rename from img/misc/museum_dusk.png
rename to img/misc/normal/museum_dusk.png
diff --git a/img/misc/museum_night.png b/img/misc/normal/museum_night.png
similarity index 100%
rename from img/misc/museum_night.png
rename to img/misc/normal/museum_night.png
diff --git a/img/misc/night_monster_lair_dawn.gif b/img/misc/normal/night_monster_lair_dawn.gif
similarity index 100%
rename from img/misc/night_monster_lair_dawn.gif
rename to img/misc/normal/night_monster_lair_dawn.gif
diff --git a/img/misc/night_monster_lair_day.gif b/img/misc/normal/night_monster_lair_day.gif
similarity index 100%
rename from img/misc/night_monster_lair_day.gif
rename to img/misc/normal/night_monster_lair_day.gif
diff --git a/img/misc/night_monster_lair_dusk.gif b/img/misc/normal/night_monster_lair_dusk.gif
similarity index 100%
rename from img/misc/night_monster_lair_dusk.gif
rename to img/misc/normal/night_monster_lair_dusk.gif
diff --git a/img/misc/night_monster_lair_night.gif b/img/misc/normal/night_monster_lair_night.gif
similarity index 100%
rename from img/misc/night_monster_lair_night.gif
rename to img/misc/normal/night_monster_lair_night.gif
diff --git a/img/misc/ocean_dawn.gif b/img/misc/normal/ocean_dawn.gif
similarity index 100%
rename from img/misc/ocean_dawn.gif
rename to img/misc/normal/ocean_dawn.gif
diff --git a/img/misc/ocean_day.gif b/img/misc/normal/ocean_day.gif
similarity index 100%
rename from img/misc/ocean_day.gif
rename to img/misc/normal/ocean_day.gif
diff --git a/img/misc/ocean_dusk.gif b/img/misc/normal/ocean_dusk.gif
similarity index 100%
rename from img/misc/ocean_dusk.gif
rename to img/misc/normal/ocean_dusk.gif
diff --git a/img/misc/ocean_night.gif b/img/misc/normal/ocean_night.gif
similarity index 100%
rename from img/misc/ocean_night.gif
rename to img/misc/normal/ocean_night.gif
diff --git a/img/misc/overcastdawn.png b/img/misc/normal/overcastdawn.png
similarity index 100%
rename from img/misc/overcastdawn.png
rename to img/misc/normal/overcastdawn.png
diff --git a/img/misc/overcastday.png b/img/misc/normal/overcastday.png
similarity index 100%
rename from img/misc/overcastday.png
rename to img/misc/normal/overcastday.png
diff --git a/img/misc/overcastdusk.png b/img/misc/normal/overcastdusk.png
similarity index 100%
rename from img/misc/overcastdusk.png
rename to img/misc/normal/overcastdusk.png
diff --git a/img/misc/overcastnight.png b/img/misc/normal/overcastnight.png
similarity index 100%
rename from img/misc/overcastnight.png
rename to img/misc/normal/overcastnight.png
diff --git a/img/misc/park_dawn.gif b/img/misc/normal/park_dawn.gif
similarity index 100%
rename from img/misc/park_dawn.gif
rename to img/misc/normal/park_dawn.gif
diff --git a/img/misc/park_day.png b/img/misc/normal/park_day.png
similarity index 100%
rename from img/misc/park_day.png
rename to img/misc/normal/park_day.png
diff --git a/img/misc/park_dusk.png b/img/misc/normal/park_dusk.png
similarity index 100%
rename from img/misc/park_dusk.png
rename to img/misc/normal/park_dusk.png
diff --git a/img/misc/park_night.png b/img/misc/normal/park_night.png
similarity index 100%
rename from img/misc/park_night.png
rename to img/misc/normal/park_night.png
diff --git a/img/misc/police_station_dawn.png b/img/misc/normal/police_station_dawn.png
similarity index 100%
rename from img/misc/police_station_dawn.png
rename to img/misc/normal/police_station_dawn.png
diff --git a/img/misc/police_station_day.png b/img/misc/normal/police_station_day.png
similarity index 100%
rename from img/misc/police_station_day.png
rename to img/misc/normal/police_station_day.png
diff --git a/img/misc/police_station_dusk.png b/img/misc/normal/police_station_dusk.png
similarity index 100%
rename from img/misc/police_station_dusk.png
rename to img/misc/normal/police_station_dusk.png
diff --git a/img/misc/police_station_night.png b/img/misc/normal/police_station_night.png
similarity index 100%
rename from img/misc/police_station_night.png
rename to img/misc/normal/police_station_night.png
diff --git a/img/misc/pooldawn.gif b/img/misc/normal/pooldawn.gif
similarity index 100%
rename from img/misc/pooldawn.gif
rename to img/misc/normal/pooldawn.gif
diff --git a/img/misc/poolday.gif b/img/misc/normal/poolday.gif
similarity index 100%
rename from img/misc/poolday.gif
rename to img/misc/normal/poolday.gif
diff --git a/img/misc/pooldusk.gif b/img/misc/normal/pooldusk.gif
similarity index 100%
rename from img/misc/pooldusk.gif
rename to img/misc/normal/pooldusk.gif
diff --git a/img/misc/poolnight.gif b/img/misc/normal/poolnight.gif
similarity index 100%
rename from img/misc/poolnight.gif
rename to img/misc/normal/poolnight.gif
diff --git a/img/misc/pubdawn.png b/img/misc/normal/pubdawn.png
similarity index 100%
rename from img/misc/pubdawn.png
rename to img/misc/normal/pubdawn.png
diff --git a/img/misc/pubday.png b/img/misc/normal/pubday.png
similarity index 100%
rename from img/misc/pubday.png
rename to img/misc/normal/pubday.png
diff --git a/img/misc/pubdusk.png b/img/misc/normal/pubdusk.png
similarity index 100%
rename from img/misc/pubdusk.png
rename to img/misc/normal/pubdusk.png
diff --git a/img/misc/pubnight.png b/img/misc/normal/pubnight.png
similarity index 100%
rename from img/misc/pubnight.png
rename to img/misc/normal/pubnight.png
diff --git a/img/misc/ruins_blood_moon.gif b/img/misc/normal/ruins_blood_moon.gif
similarity index 100%
rename from img/misc/ruins_blood_moon.gif
rename to img/misc/normal/ruins_blood_moon.gif
diff --git a/img/misc/ruins_dawn.gif b/img/misc/normal/ruins_dawn.gif
similarity index 100%
rename from img/misc/ruins_dawn.gif
rename to img/misc/normal/ruins_dawn.gif
diff --git a/img/misc/ruins_day.gif b/img/misc/normal/ruins_day.gif
similarity index 100%
rename from img/misc/ruins_day.gif
rename to img/misc/normal/ruins_day.gif
diff --git a/img/misc/ruins_dusk.gif b/img/misc/normal/ruins_dusk.gif
similarity index 100%
rename from img/misc/ruins_dusk.gif
rename to img/misc/normal/ruins_dusk.gif
diff --git a/img/misc/ruins_night.gif b/img/misc/normal/ruins_night.gif
similarity index 100%
rename from img/misc/ruins_night.gif
rename to img/misc/normal/ruins_night.gif
diff --git a/img/misc/schooldawn.png b/img/misc/normal/schooldawn.png
similarity index 100%
rename from img/misc/schooldawn.png
rename to img/misc/normal/schooldawn.png
diff --git a/img/misc/schoolday.png b/img/misc/normal/schoolday.png
similarity index 100%
rename from img/misc/schoolday.png
rename to img/misc/normal/schoolday.png
diff --git a/img/misc/schooldusk.png b/img/misc/normal/schooldusk.png
similarity index 100%
rename from img/misc/schooldusk.png
rename to img/misc/normal/schooldusk.png
diff --git a/img/misc/schoolnight.png b/img/misc/normal/schoolnight.png
similarity index 100%
rename from img/misc/schoolnight.png
rename to img/misc/normal/schoolnight.png
diff --git a/img/misc/shopping_centre_dawn.png b/img/misc/normal/shopping_centre_dawn.png
similarity index 100%
rename from img/misc/shopping_centre_dawn.png
rename to img/misc/normal/shopping_centre_dawn.png
diff --git a/img/misc/shopping_centre_day.png b/img/misc/normal/shopping_centre_day.png
similarity index 100%
rename from img/misc/shopping_centre_day.png
rename to img/misc/normal/shopping_centre_day.png
diff --git a/img/misc/shopping_centre_dusk.png b/img/misc/normal/shopping_centre_dusk.png
similarity index 100%
rename from img/misc/shopping_centre_dusk.png
rename to img/misc/normal/shopping_centre_dusk.png
diff --git a/img/misc/shopping_centre_night.png b/img/misc/normal/shopping_centre_night.png
similarity index 100%
rename from img/misc/shopping_centre_night.png
rename to img/misc/normal/shopping_centre_night.png
diff --git a/img/misc/spa_dawn.gif b/img/misc/normal/spa_dawn.gif
similarity index 100%
rename from img/misc/spa_dawn.gif
rename to img/misc/normal/spa_dawn.gif
diff --git a/img/misc/spa_day.gif b/img/misc/normal/spa_day.gif
similarity index 100%
rename from img/misc/spa_day.gif
rename to img/misc/normal/spa_day.gif
diff --git a/img/misc/spa_dusk.gif b/img/misc/normal/spa_dusk.gif
similarity index 100%
rename from img/misc/spa_dusk.gif
rename to img/misc/normal/spa_dusk.gif
diff --git a/img/misc/spa_night.gif b/img/misc/normal/spa_night.gif
similarity index 100%
rename from img/misc/spa_night.gif
rename to img/misc/normal/spa_night.gif
diff --git a/img/misc/strip_club_dawn.png b/img/misc/normal/strip_club_dawn.png
similarity index 100%
rename from img/misc/strip_club_dawn.png
rename to img/misc/normal/strip_club_dawn.png
diff --git a/img/misc/strip_club_day.png b/img/misc/normal/strip_club_day.png
similarity index 100%
rename from img/misc/strip_club_day.png
rename to img/misc/normal/strip_club_day.png
diff --git a/img/misc/strip_club_dusk.png b/img/misc/normal/strip_club_dusk.png
similarity index 100%
rename from img/misc/strip_club_dusk.png
rename to img/misc/normal/strip_club_dusk.png
diff --git a/img/misc/strip_club_night.png b/img/misc/normal/strip_club_night.png
similarity index 100%
rename from img/misc/strip_club_night.png
rename to img/misc/normal/strip_club_night.png
diff --git a/img/misc/templedawn.png b/img/misc/normal/templedawn.png
similarity index 100%
rename from img/misc/templedawn.png
rename to img/misc/normal/templedawn.png
diff --git a/img/misc/templeday.png b/img/misc/normal/templeday.png
similarity index 100%
rename from img/misc/templeday.png
rename to img/misc/normal/templeday.png
diff --git a/img/misc/templedusk.png b/img/misc/normal/templedusk.png
similarity index 100%
rename from img/misc/templedusk.png
rename to img/misc/normal/templedusk.png
diff --git a/img/misc/templenight.png b/img/misc/normal/templenight.png
similarity index 100%
rename from img/misc/templenight.png
rename to img/misc/normal/templenight.png
diff --git a/img/misc/tentacles_dawn.gif b/img/misc/normal/tentacles_dawn.gif
similarity index 100%
rename from img/misc/tentacles_dawn.gif
rename to img/misc/normal/tentacles_dawn.gif
diff --git a/img/misc/tentacles_day.gif b/img/misc/normal/tentacles_day.gif
similarity index 100%
rename from img/misc/tentacles_day.gif
rename to img/misc/normal/tentacles_day.gif
diff --git a/img/misc/tentacles_dusk.gif b/img/misc/normal/tentacles_dusk.gif
similarity index 100%
rename from img/misc/tentacles_dusk.gif
rename to img/misc/normal/tentacles_dusk.gif
diff --git a/img/misc/tentacles_night.gif b/img/misc/normal/tentacles_night.gif
similarity index 100%
rename from img/misc/tentacles_night.gif
rename to img/misc/normal/tentacles_night.gif
diff --git a/img/misc/town_dawn.gif b/img/misc/normal/town_dawn.gif
similarity index 100%
rename from img/misc/town_dawn.gif
rename to img/misc/normal/town_dawn.gif
diff --git a/img/misc/town_day.gif b/img/misc/normal/town_day.gif
similarity index 100%
rename from img/misc/town_day.gif
rename to img/misc/normal/town_day.gif
diff --git a/img/misc/town_dusk.png b/img/misc/normal/town_dusk.png
similarity index 100%
rename from img/misc/town_dusk.png
rename to img/misc/normal/town_dusk.png
diff --git a/img/misc/town_night.gif b/img/misc/normal/town_night.gif
similarity index 100%
rename from img/misc/town_night.gif
rename to img/misc/normal/town_night.gif
diff --git a/img/misc/wolf_cave_dawn.png b/img/misc/normal/wolf_cave_dawn.png
similarity index 100%
rename from img/misc/wolf_cave_dawn.png
rename to img/misc/normal/wolf_cave_dawn.png
diff --git a/img/misc/wolf_cave_day.png b/img/misc/normal/wolf_cave_day.png
similarity index 100%
rename from img/misc/wolf_cave_day.png
rename to img/misc/normal/wolf_cave_day.png
diff --git a/img/misc/wolf_cave_dusk.png b/img/misc/normal/wolf_cave_dusk.png
similarity index 100%
rename from img/misc/wolf_cave_dusk.png
rename to img/misc/normal/wolf_cave_dusk.png
diff --git a/img/misc/wolf_cave_night.png b/img/misc/normal/wolf_cave_night.png
similarity index 100%
rename from img/misc/wolf_cave_night.png
rename to img/misc/normal/wolf_cave_night.png
diff --git a/img/misc/winter/alley_blood.gif b/img/misc/winter/alley_blood.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3fdf1f9cf8f2620b2b307558bc504fec5c947d2d
Binary files /dev/null and b/img/misc/winter/alley_blood.gif differ
diff --git a/img/misc/winter/alley_dawn.gif b/img/misc/winter/alley_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7eca72f90d154f252234327da599418069dea7ae
Binary files /dev/null and b/img/misc/winter/alley_dawn.gif differ
diff --git a/img/misc/winter/alley_day.gif b/img/misc/winter/alley_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..050bd2db49784d32bdec86ac4e6252cbafefc7d3
Binary files /dev/null and b/img/misc/winter/alley_day.gif differ
diff --git a/img/misc/winter/alley_dusk.gif b/img/misc/winter/alley_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5d96bae12a3d1195512660e34247d8d1f7f160ff
Binary files /dev/null and b/img/misc/winter/alley_dusk.gif differ
diff --git a/img/misc/winter/alley_night.gif b/img/misc/winter/alley_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b5f593001ea38f06baa7e660f312a16f7d791896
Binary files /dev/null and b/img/misc/winter/alley_night.gif differ
diff --git a/img/misc/winter/arcade_dawn.png b/img/misc/winter/arcade_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..453e2fb16661788568e09d4c081e3321bc6755fa
Binary files /dev/null and b/img/misc/winter/arcade_dawn.png differ
diff --git a/img/misc/winter/arcade_day.png b/img/misc/winter/arcade_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..c939eeaf365a820fed3e6bccab0e5439ea3752c2
Binary files /dev/null and b/img/misc/winter/arcade_day.png differ
diff --git a/img/misc/winter/arcade_dusk.png b/img/misc/winter/arcade_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..550ff461ff4ca93fe905ce029de4d1dfe90bfc07
Binary files /dev/null and b/img/misc/winter/arcade_dusk.png differ
diff --git a/img/misc/winter/arcade_night.png b/img/misc/winter/arcade_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..b652b318c9ef1130b7e7461859845e53c22ee8f5
Binary files /dev/null and b/img/misc/winter/arcade_night.png differ
diff --git a/img/misc/winter/asylumdawnslow.gif b/img/misc/winter/asylumdawnslow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4bcb4d473f5c9b8d1b70e953d5db883c0e7c6ef9
Binary files /dev/null and b/img/misc/winter/asylumdawnslow.gif differ
diff --git a/img/misc/winter/asylumdawnvfast.gif b/img/misc/winter/asylumdawnvfast.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cec10ad115bb51ab44a8f96879b3586767c0f133
Binary files /dev/null and b/img/misc/winter/asylumdawnvfast.gif differ
diff --git a/img/misc/winter/asylumdayslow.gif b/img/misc/winter/asylumdayslow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..25607b9124ef1517a32b786113c11684cf2b0078
Binary files /dev/null and b/img/misc/winter/asylumdayslow.gif differ
diff --git a/img/misc/winter/asylumdayvfast.gif b/img/misc/winter/asylumdayvfast.gif
new file mode 100644
index 0000000000000000000000000000000000000000..50eac4075fa73c14bf2fa9a8ce63a59ac6558bee
Binary files /dev/null and b/img/misc/winter/asylumdayvfast.gif differ
diff --git a/img/misc/winter/asylumduskslow.gif b/img/misc/winter/asylumduskslow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4d4cdc9c07fdbf980c4e1aca1c2a4aa3ff23ffb9
Binary files /dev/null and b/img/misc/winter/asylumduskslow.gif differ
diff --git a/img/misc/winter/asylumduskvfast.gif b/img/misc/winter/asylumduskvfast.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b4cc81ab92b3c63e7a603ab653f671b833f272d9
Binary files /dev/null and b/img/misc/winter/asylumduskvfast.gif differ
diff --git a/img/misc/winter/asylumnightslow.gif b/img/misc/winter/asylumnightslow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fa6bf4dfd0ce6d9b0089f7ea1c33b651e73679ee
Binary files /dev/null and b/img/misc/winter/asylumnightslow.gif differ
diff --git a/img/misc/winter/asylumnightvfast.gif b/img/misc/winter/asylumnightvfast.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6662c776587dc68ef39a7a572d11641b0dabe0a0
Binary files /dev/null and b/img/misc/winter/asylumnightvfast.gif differ
diff --git a/img/misc/winter/beachdawn.gif b/img/misc/winter/beachdawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ec43b7f5b614d2679a86bcc5f7aff06acf3ec201
Binary files /dev/null and b/img/misc/winter/beachdawn.gif differ
diff --git a/img/misc/winter/beachday.gif b/img/misc/winter/beachday.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cda9f3f14a26866c9987bd9a9e7a395874e41f5b
Binary files /dev/null and b/img/misc/winter/beachday.gif differ
diff --git a/img/misc/winter/beachdusk.gif b/img/misc/winter/beachdusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d94911812822a362ab47e6c8b8947e7bc20bac67
Binary files /dev/null and b/img/misc/winter/beachdusk.gif differ
diff --git a/img/misc/winter/beachnight.gif b/img/misc/winter/beachnight.gif
new file mode 100644
index 0000000000000000000000000000000000000000..776a781e8a596f8648baacde0633d99440b96c99
Binary files /dev/null and b/img/misc/winter/beachnight.gif differ
diff --git a/img/misc/winter/brothel_dawn.png b/img/misc/winter/brothel_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9ef13af36e889eb0d57e80ea32e4a283944fe27
Binary files /dev/null and b/img/misc/winter/brothel_dawn.png differ
diff --git a/img/misc/winter/brothel_day.png b/img/misc/winter/brothel_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..db6c7ea4d00dee7e96ce6bbc2ebf59f0dc9625ad
Binary files /dev/null and b/img/misc/winter/brothel_day.png differ
diff --git a/img/misc/winter/brothel_dusk.png b/img/misc/winter/brothel_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..033e1a2a5099434e1edd97c2ee60efa54478643b
Binary files /dev/null and b/img/misc/winter/brothel_dusk.png differ
diff --git a/img/misc/winter/brothel_night.png b/img/misc/winter/brothel_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa33170dfdcdc44fc3c33f7a5c8406f5e7fe9d1e
Binary files /dev/null and b/img/misc/winter/brothel_night.png differ
diff --git a/img/misc/winter/cabin.gif b/img/misc/winter/cabin.gif
new file mode 100644
index 0000000000000000000000000000000000000000..93f9e6417d593eb99961cb6e7013c49dd0051887
Binary files /dev/null and b/img/misc/winter/cabin.gif differ
diff --git a/img/misc/winter/cabindawn.png b/img/misc/winter/cabindawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f21e6961e1c0e024f4836fcb60abffe28361215
Binary files /dev/null and b/img/misc/winter/cabindawn.png differ
diff --git a/img/misc/winter/cabinday.png b/img/misc/winter/cabinday.png
new file mode 100644
index 0000000000000000000000000000000000000000..7cded6063bda1f4fc72d43a93bf2340e3167057a
Binary files /dev/null and b/img/misc/winter/cabinday.png differ
diff --git a/img/misc/winter/cabindusk.png b/img/misc/winter/cabindusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..012597021b68283244b66ed4f4ae21c62f5d9a65
Binary files /dev/null and b/img/misc/winter/cabindusk.png differ
diff --git a/img/misc/winter/cabinnight.png b/img/misc/winter/cabinnight.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b0a7bec29a5745ff1408a3bb41875be8552287e
Binary files /dev/null and b/img/misc/winter/cabinnight.png differ
diff --git a/img/misc/winter/cafe_construction_dawn.png b/img/misc/winter/cafe_construction_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d2bd9d882326b374faaa3a3692657b9ce0c2d14
Binary files /dev/null and b/img/misc/winter/cafe_construction_dawn.png differ
diff --git a/img/misc/winter/cafe_construction_day.png b/img/misc/winter/cafe_construction_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..cacd1c0b3e8d927b64b81a7ed6e03c58d358bace
Binary files /dev/null and b/img/misc/winter/cafe_construction_day.png differ
diff --git a/img/misc/winter/cafe_construction_dusk.png b/img/misc/winter/cafe_construction_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f52b8f6395bc962945840724e76279a1a229831
Binary files /dev/null and b/img/misc/winter/cafe_construction_dusk.png differ
diff --git a/img/misc/winter/cafe_construction_night.png b/img/misc/winter/cafe_construction_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb6c4e98bf41be591e780af863c57a6741a4edfb
Binary files /dev/null and b/img/misc/winter/cafe_construction_night.png differ
diff --git a/img/misc/winter/cafe_dawn.png b/img/misc/winter/cafe_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..70aa810a443ba201203b01f4465e7b78e434892f
Binary files /dev/null and b/img/misc/winter/cafe_dawn.png differ
diff --git a/img/misc/winter/cafe_day.png b/img/misc/winter/cafe_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..d304103c7aa99620845c5c983ff2b044d71e1ba5
Binary files /dev/null and b/img/misc/winter/cafe_day.png differ
diff --git a/img/misc/winter/cafe_dusk.png b/img/misc/winter/cafe_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3a3fc65c7d8845a73b5346c5933f7586569b95c
Binary files /dev/null and b/img/misc/winter/cafe_dusk.png differ
diff --git a/img/misc/winter/cafe_night.png b/img/misc/winter/cafe_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1a5ebac66e87e083c0937d22809073c8f12fb9b
Binary files /dev/null and b/img/misc/winter/cafe_night.png differ
diff --git a/img/misc/winter/cafe_renovated_dawn.png b/img/misc/winter/cafe_renovated_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc986cb16c071166bb55023fbaff0a328d08c4dd
Binary files /dev/null and b/img/misc/winter/cafe_renovated_dawn.png differ
diff --git a/img/misc/winter/cafe_renovated_day.png b/img/misc/winter/cafe_renovated_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..87515548d0b9a6f658ddfcbc79999377794008ec
Binary files /dev/null and b/img/misc/winter/cafe_renovated_day.png differ
diff --git a/img/misc/winter/cafe_renovated_dusk.png b/img/misc/winter/cafe_renovated_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..591db31a107d4bb71be779bffaed1eaafa7ff60b
Binary files /dev/null and b/img/misc/winter/cafe_renovated_dusk.png differ
diff --git a/img/misc/winter/cafe_renovated_night.png b/img/misc/winter/cafe_renovated_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..297f7fed6eeb4356959eb3c4f57256613f9083bb
Binary files /dev/null and b/img/misc/winter/cafe_renovated_night.png differ
diff --git a/img/misc/winter/compound_dawn.gif b/img/misc/winter/compound_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8829ee29d37b04ae7d2f3bbf08d9cfffe0891d83
Binary files /dev/null and b/img/misc/winter/compound_dawn.gif differ
diff --git a/img/misc/winter/compound_day.gif b/img/misc/winter/compound_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cc18ee2d1982f115e9b067c33aa4bfc43f6739db
Binary files /dev/null and b/img/misc/winter/compound_day.gif differ
diff --git a/img/misc/winter/compound_dusk.gif b/img/misc/winter/compound_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7336d82b11d2a03e56b5eaeff575e720b28608b0
Binary files /dev/null and b/img/misc/winter/compound_dusk.gif differ
diff --git a/img/misc/winter/compound_night.gif b/img/misc/winter/compound_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9645bca6bbb345f0fabb2fbf836eaf7f3a992d0e
Binary files /dev/null and b/img/misc/winter/compound_night.gif differ
diff --git a/img/misc/winter/dance_studio_dawn.png b/img/misc/winter/dance_studio_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..2946cfd7b8a31e1b88ce3080ad4206744ae477ec
Binary files /dev/null and b/img/misc/winter/dance_studio_dawn.png differ
diff --git a/img/misc/winter/dance_studio_day.png b/img/misc/winter/dance_studio_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..578b1caa78f98112ff3e323eb37361cbfd7114fd
Binary files /dev/null and b/img/misc/winter/dance_studio_day.png differ
diff --git a/img/misc/winter/dance_studio_dusk.png b/img/misc/winter/dance_studio_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f180f443ca3813b040aa0c1b9e6c4d838cb646e
Binary files /dev/null and b/img/misc/winter/dance_studio_dusk.png differ
diff --git a/img/misc/winter/dance_studio_night.png b/img/misc/winter/dance_studio_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..76c2a11a6ac872d121f2174b79ab74b7b63b08c7
Binary files /dev/null and b/img/misc/winter/dance_studio_night.png differ
diff --git a/img/misc/winter/deepunderground.png b/img/misc/winter/deepunderground.png
new file mode 100644
index 0000000000000000000000000000000000000000..0320c940f852556f834969a746776168b1230973
Binary files /dev/null and b/img/misc/winter/deepunderground.png differ
diff --git a/img/misc/winter/docks_dawn.png b/img/misc/winter/docks_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..607a4e492e2cb6bf15176272b1df11d781afd20d
Binary files /dev/null and b/img/misc/winter/docks_dawn.png differ
diff --git a/img/misc/winter/docks_day.png b/img/misc/winter/docks_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..520275efb0e70ea4a72925cafea1250df23987c0
Binary files /dev/null and b/img/misc/winter/docks_day.png differ
diff --git a/img/misc/winter/docks_dusk.png b/img/misc/winter/docks_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..41aebfd821772c95668c5215236ba8fe1529a8da
Binary files /dev/null and b/img/misc/winter/docks_dusk.png differ
diff --git a/img/misc/winter/docks_night.png b/img/misc/winter/docks_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..11e2845f8f5b7d7fddaefa669ac3752c038f8744
Binary files /dev/null and b/img/misc/winter/docks_night.png differ
diff --git a/img/misc/winter/farm_dawn.png b/img/misc/winter/farm_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..791a1dd39d8b12da99efae492755dc616f1dce67
Binary files /dev/null and b/img/misc/winter/farm_dawn.png differ
diff --git a/img/misc/winter/farm_day.png b/img/misc/winter/farm_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..e65a628aad594741e043b72968a661cea548ada3
Binary files /dev/null and b/img/misc/winter/farm_day.png differ
diff --git a/img/misc/winter/farm_dusk.png b/img/misc/winter/farm_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..feb41e7ae16725fb01013b1c4280cd2b16869fd1
Binary files /dev/null and b/img/misc/winter/farm_dusk.png differ
diff --git a/img/misc/winter/farm_night.png b/img/misc/winter/farm_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..4710fdf69e1f75b6f855e630cb8bdad431f685df
Binary files /dev/null and b/img/misc/winter/farm_night.png differ
diff --git a/img/misc/winter/forest_shop_dawn.png b/img/misc/winter/forest_shop_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e48715fb8bd489ec7502fc7545051123d8c8707
Binary files /dev/null and b/img/misc/winter/forest_shop_dawn.png differ
diff --git a/img/misc/winter/forest_shop_day.png b/img/misc/winter/forest_shop_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..3dc03a2f250a3e239d12b02dfcfd72292a1cb66a
Binary files /dev/null and b/img/misc/winter/forest_shop_day.png differ
diff --git a/img/misc/winter/forest_shop_dusk.png b/img/misc/winter/forest_shop_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..b8621d136dc0d7f14ae9b4714aece39f59a462e0
Binary files /dev/null and b/img/misc/winter/forest_shop_dusk.png differ
diff --git a/img/misc/winter/forest_shop_night.png b/img/misc/winter/forest_shop_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..676896d5e54765fb72e878217e1d06442a93c1ab
Binary files /dev/null and b/img/misc/winter/forest_shop_night.png differ
diff --git a/img/misc/winter/forestbloodmoon.gif b/img/misc/winter/forestbloodmoon.gif
new file mode 100644
index 0000000000000000000000000000000000000000..855a091ae46166d378dee2c192c004f07e15278e
Binary files /dev/null and b/img/misc/winter/forestbloodmoon.gif differ
diff --git a/img/misc/winter/forestdawn.png b/img/misc/winter/forestdawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..baa242ae9d12de42d3640858af8665d957202e64
Binary files /dev/null and b/img/misc/winter/forestdawn.png differ
diff --git a/img/misc/winter/forestday.gif b/img/misc/winter/forestday.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5877f878e21df9cc2482f44b0bd16297faa649d7
Binary files /dev/null and b/img/misc/winter/forestday.gif differ
diff --git a/img/misc/winter/forestdusk.gif b/img/misc/winter/forestdusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3e6e91378b732acec465c1d3e96e873e37bdc2ad
Binary files /dev/null and b/img/misc/winter/forestdusk.gif differ
diff --git a/img/misc/winter/forestnight.png b/img/misc/winter/forestnight.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1d14e9653b28a854d86b78a6e9cd4e9fee89fb2
Binary files /dev/null and b/img/misc/winter/forestnight.png differ
diff --git a/img/misc/winter/homedawn.gif b/img/misc/winter/homedawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2ebab3d966d8dab27e68b58fdc50b9b8e8f7e621
Binary files /dev/null and b/img/misc/winter/homedawn.gif differ
diff --git a/img/misc/winter/homeday.gif b/img/misc/winter/homeday.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6302660fb02025893889d8f9b99d2c2a47e352fe
Binary files /dev/null and b/img/misc/winter/homeday.gif differ
diff --git a/img/misc/winter/homedusk.gif b/img/misc/winter/homedusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..17d9a72d1acca1ec2f30b767a278bfd0c0f892c8
Binary files /dev/null and b/img/misc/winter/homedusk.gif differ
diff --git a/img/misc/winter/homenight.gif b/img/misc/winter/homenight.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e501660675c401cc482ca6a736de8aa0d39ca74
Binary files /dev/null and b/img/misc/winter/homenight.gif differ
diff --git a/img/misc/winter/hospital_dawn.png b/img/misc/winter/hospital_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f56e2793c370f246d6099d26c8d40d4d276ef91
Binary files /dev/null and b/img/misc/winter/hospital_dawn.png differ
diff --git a/img/misc/winter/hospital_day.png b/img/misc/winter/hospital_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..b66e7071afc9ef6c41f7230387b18ffb24f547be
Binary files /dev/null and b/img/misc/winter/hospital_day.png differ
diff --git a/img/misc/winter/hospital_dusk.png b/img/misc/winter/hospital_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..d56012ce8b58602ed083b2add973655e58c4600a
Binary files /dev/null and b/img/misc/winter/hospital_dusk.png differ
diff --git a/img/misc/winter/hospital_night.png b/img/misc/winter/hospital_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5ee83e0606fc5e64ef2b55caf9f9a41ba567a82
Binary files /dev/null and b/img/misc/winter/hospital_night.png differ
diff --git a/img/misc/winter/indust_alley_blood.gif b/img/misc/winter/indust_alley_blood.gif
new file mode 100644
index 0000000000000000000000000000000000000000..52a91d78b6cf834a9cf0f7be45daa04b01b2a3d6
Binary files /dev/null and b/img/misc/winter/indust_alley_blood.gif differ
diff --git a/img/misc/winter/indust_alley_dawn.gif b/img/misc/winter/indust_alley_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2c97e0313961d9f82b7fabb6c91864812b0fdeae
Binary files /dev/null and b/img/misc/winter/indust_alley_dawn.gif differ
diff --git a/img/misc/winter/indust_alley_day.gif b/img/misc/winter/indust_alley_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1792d9ae496a29c282fbe964a36372a210497f72
Binary files /dev/null and b/img/misc/winter/indust_alley_day.gif differ
diff --git a/img/misc/winter/indust_alley_dusk.gif b/img/misc/winter/indust_alley_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fadf6574407e98048589f099fc9902391b87ab36
Binary files /dev/null and b/img/misc/winter/indust_alley_dusk.gif differ
diff --git a/img/misc/winter/indust_alley_night.gif b/img/misc/winter/indust_alley_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..db2907c70d2bccd377e557ac56d3de7fc2a195eb
Binary files /dev/null and b/img/misc/winter/indust_alley_night.gif differ
diff --git a/img/misc/winter/lakebloodmoon.gif b/img/misc/winter/lakebloodmoon.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1806f7d59101cffff99b4cb4e627640444607d03
Binary files /dev/null and b/img/misc/winter/lakebloodmoon.gif differ
diff --git a/img/misc/winter/lakedawn.gif b/img/misc/winter/lakedawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8de375d3a679a89c9c64033a28d41cb30f561982
Binary files /dev/null and b/img/misc/winter/lakedawn.gif differ
diff --git a/img/misc/winter/lakeday.gif b/img/misc/winter/lakeday.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d985522f2e877dac08d65063a460bcb408cc7cc6
Binary files /dev/null and b/img/misc/winter/lakeday.gif differ
diff --git a/img/misc/winter/lakedusk.gif b/img/misc/winter/lakedusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c57d6bebd7786d2c488ffa879dd9da464b4b5546
Binary files /dev/null and b/img/misc/winter/lakedusk.gif differ
diff --git a/img/misc/winter/lakenight.gif b/img/misc/winter/lakenight.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f442a6649a33e139437a12bbd7628f9802e47aae
Binary files /dev/null and b/img/misc/winter/lakenight.gif differ
diff --git a/img/misc/winter/landfilldawn.gif b/img/misc/winter/landfilldawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e2e30c217bb344091bb1081056cad20edcc46e37
Binary files /dev/null and b/img/misc/winter/landfilldawn.gif differ
diff --git a/img/misc/winter/landfillday.gif b/img/misc/winter/landfillday.gif
new file mode 100644
index 0000000000000000000000000000000000000000..231da7c71ed8f7867dd9d0b839b968a2fa904d21
Binary files /dev/null and b/img/misc/winter/landfillday.gif differ
diff --git a/img/misc/winter/landfilldusk.gif b/img/misc/winter/landfilldusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..85f212ec0bc19768e580c1b35f8615740dcdfcbe
Binary files /dev/null and b/img/misc/winter/landfilldusk.gif differ
diff --git a/img/misc/winter/landfillnight.gif b/img/misc/winter/landfillnight.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c20a33948bff3ccfe5f7b31fa5baf33d721e32b1
Binary files /dev/null and b/img/misc/winter/landfillnight.gif differ
diff --git a/img/misc/winter/moor_dawn.gif b/img/misc/winter/moor_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d03a4d4ed5b86752fd2ea2db82dc5c97e96b8a2d
Binary files /dev/null and b/img/misc/winter/moor_dawn.gif differ
diff --git a/img/misc/winter/moor_day.gif b/img/misc/winter/moor_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3ce6e617e44eb332e5e99a71c1eb04e3690a4901
Binary files /dev/null and b/img/misc/winter/moor_day.gif differ
diff --git a/img/misc/winter/moor_dusk.gif b/img/misc/winter/moor_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9d8719e366f8bd37b2940897be25a29b61bde72e
Binary files /dev/null and b/img/misc/winter/moor_dusk.gif differ
diff --git a/img/misc/winter/moor_night.gif b/img/misc/winter/moor_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5e35651864fbafd6656ec46724d97133885a2662
Binary files /dev/null and b/img/misc/winter/moor_night.gif differ
diff --git a/img/misc/winter/museum_dawn.png b/img/misc/winter/museum_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..5066d171b25e2b7919802e2236b8e9de947987cb
Binary files /dev/null and b/img/misc/winter/museum_dawn.png differ
diff --git a/img/misc/winter/museum_day.png b/img/misc/winter/museum_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d0e2941141377bbee3d865d90a2db76247db63e
Binary files /dev/null and b/img/misc/winter/museum_day.png differ
diff --git a/img/misc/winter/museum_dusk.png b/img/misc/winter/museum_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..8097e06a4d38a1ea826e9b5b06c7efcb31090201
Binary files /dev/null and b/img/misc/winter/museum_dusk.png differ
diff --git a/img/misc/winter/museum_night.png b/img/misc/winter/museum_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..8cc67b45d2f764545446003159d55ee6587ef2df
Binary files /dev/null and b/img/misc/winter/museum_night.png differ
diff --git a/img/misc/winter/night_monster_lair_dawn.gif b/img/misc/winter/night_monster_lair_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7b105974b0add227f408231bc3c90ef81e80e910
Binary files /dev/null and b/img/misc/winter/night_monster_lair_dawn.gif differ
diff --git a/img/misc/winter/night_monster_lair_day.gif b/img/misc/winter/night_monster_lair_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0a9971a3445b1481ec13640832202e41cb0d63f8
Binary files /dev/null and b/img/misc/winter/night_monster_lair_day.gif differ
diff --git a/img/misc/winter/night_monster_lair_dusk.gif b/img/misc/winter/night_monster_lair_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0e1ca54e0a1e6afed8707c43cc8662873577cad4
Binary files /dev/null and b/img/misc/winter/night_monster_lair_dusk.gif differ
diff --git a/img/misc/winter/night_monster_lair_night.gif b/img/misc/winter/night_monster_lair_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..264b883772d30b03d235eda1e878c575552c5382
Binary files /dev/null and b/img/misc/winter/night_monster_lair_night.gif differ
diff --git a/img/misc/winter/ocean_dawn.gif b/img/misc/winter/ocean_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..12493afd0caa4e0968b9c8baba19c51ca308a536
Binary files /dev/null and b/img/misc/winter/ocean_dawn.gif differ
diff --git a/img/misc/winter/ocean_day.gif b/img/misc/winter/ocean_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a3f67c595e0e860df970121b4ac512888c73a2bc
Binary files /dev/null and b/img/misc/winter/ocean_day.gif differ
diff --git a/img/misc/winter/ocean_dusk.gif b/img/misc/winter/ocean_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..954ce35cc8f6e58ff5f6249f3f041cd7a7b59559
Binary files /dev/null and b/img/misc/winter/ocean_dusk.gif differ
diff --git a/img/misc/winter/ocean_night.gif b/img/misc/winter/ocean_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a568bacc709952117c6196058aac68f661a93aaa
Binary files /dev/null and b/img/misc/winter/ocean_night.gif differ
diff --git a/img/misc/winter/overcastdawn.png b/img/misc/winter/overcastdawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..bef33f5839efa2122126ac32d109222f19c60270
Binary files /dev/null and b/img/misc/winter/overcastdawn.png differ
diff --git a/img/misc/winter/overcastday.png b/img/misc/winter/overcastday.png
new file mode 100644
index 0000000000000000000000000000000000000000..76c06abf4d05b49128a4bcb877574a243fbfdad6
Binary files /dev/null and b/img/misc/winter/overcastday.png differ
diff --git a/img/misc/winter/overcastdusk.png b/img/misc/winter/overcastdusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed265631267318f2fd76cd75b029af27bb8b770d
Binary files /dev/null and b/img/misc/winter/overcastdusk.png differ
diff --git a/img/misc/winter/overcastnight.png b/img/misc/winter/overcastnight.png
new file mode 100644
index 0000000000000000000000000000000000000000..59a202a7afe2869ce692d65b4418548dd3095900
Binary files /dev/null and b/img/misc/winter/overcastnight.png differ
diff --git a/img/misc/winter/park_dawn.gif b/img/misc/winter/park_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fa97b723265badc0b8a2c39a4747a43d8ff5ff72
Binary files /dev/null and b/img/misc/winter/park_dawn.gif differ
diff --git a/img/misc/winter/park_day.png b/img/misc/winter/park_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a70816297c1f3b48cb4807fd8f1299f33cc4b86
Binary files /dev/null and b/img/misc/winter/park_day.png differ
diff --git a/img/misc/winter/park_dusk.png b/img/misc/winter/park_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6a2c514f72443ff3505a26eaf60050fd2bcf86c
Binary files /dev/null and b/img/misc/winter/park_dusk.png differ
diff --git a/img/misc/winter/park_night.png b/img/misc/winter/park_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e0ec82bb98d602d860011758d32a0e0cd2217e4
Binary files /dev/null and b/img/misc/winter/park_night.png differ
diff --git a/img/misc/winter/police_station_dawn.png b/img/misc/winter/police_station_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..058431633ffd2a814d72886ccdc6c284829c54f2
Binary files /dev/null and b/img/misc/winter/police_station_dawn.png differ
diff --git a/img/misc/winter/police_station_day.png b/img/misc/winter/police_station_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9374d213ba2f96af6ef2b0e3287f5bedfed18ef
Binary files /dev/null and b/img/misc/winter/police_station_day.png differ
diff --git a/img/misc/winter/police_station_dusk.png b/img/misc/winter/police_station_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..1848ffd562612d699ff93ac3f5b6c9c0d1efef85
Binary files /dev/null and b/img/misc/winter/police_station_dusk.png differ
diff --git a/img/misc/winter/police_station_night.png b/img/misc/winter/police_station_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..ced7ce564be7c6f129c5124b59af026e82e1fe6d
Binary files /dev/null and b/img/misc/winter/police_station_night.png differ
diff --git a/img/misc/winter/pooldawn.gif b/img/misc/winter/pooldawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6a4c309c471526e819ec843e10b054d2f3e7de85
Binary files /dev/null and b/img/misc/winter/pooldawn.gif differ
diff --git a/img/misc/winter/poolday.gif b/img/misc/winter/poolday.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f70f7a9604e40d40678bd76cc63726444302f97f
Binary files /dev/null and b/img/misc/winter/poolday.gif differ
diff --git a/img/misc/winter/pooldusk.gif b/img/misc/winter/pooldusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d433eab9bd5d1720c9c472f44a900173fd64c4ad
Binary files /dev/null and b/img/misc/winter/pooldusk.gif differ
diff --git a/img/misc/winter/poolnight.gif b/img/misc/winter/poolnight.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ae69954458d551deaa2a1d09c5b9ad5a14b35c2d
Binary files /dev/null and b/img/misc/winter/poolnight.gif differ
diff --git a/img/misc/winter/pubdawn.png b/img/misc/winter/pubdawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..f62919e588f55f201d95e8968f9e09c125bdc640
Binary files /dev/null and b/img/misc/winter/pubdawn.png differ
diff --git a/img/misc/winter/pubday.png b/img/misc/winter/pubday.png
new file mode 100644
index 0000000000000000000000000000000000000000..359a936cc17b2e5b358c455ed1dc1492f0c77315
Binary files /dev/null and b/img/misc/winter/pubday.png differ
diff --git a/img/misc/winter/pubdusk.png b/img/misc/winter/pubdusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9f6f8a45b12d77c83e85eaeb64dc9eb043b4c35
Binary files /dev/null and b/img/misc/winter/pubdusk.png differ
diff --git a/img/misc/winter/pubnight.png b/img/misc/winter/pubnight.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8e32ae8f1577aee85d38f5cedfa7b045829684e
Binary files /dev/null and b/img/misc/winter/pubnight.png differ
diff --git a/img/misc/winter/ruins_blood_moon.gif b/img/misc/winter/ruins_blood_moon.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9284d0b23b055f533efd3dd37239860b12c74e05
Binary files /dev/null and b/img/misc/winter/ruins_blood_moon.gif differ
diff --git a/img/misc/winter/ruins_dawn.gif b/img/misc/winter/ruins_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6374a92f19943b1e8c8ad04f714f5580832007c2
Binary files /dev/null and b/img/misc/winter/ruins_dawn.gif differ
diff --git a/img/misc/winter/ruins_day.gif b/img/misc/winter/ruins_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e8a8527245fa164a57aa7364d136e23c65e57b6e
Binary files /dev/null and b/img/misc/winter/ruins_day.gif differ
diff --git a/img/misc/winter/ruins_dusk.gif b/img/misc/winter/ruins_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ef5381871fdbfe5597cb0d26e2c62c0f783b856f
Binary files /dev/null and b/img/misc/winter/ruins_dusk.gif differ
diff --git a/img/misc/winter/ruins_night.gif b/img/misc/winter/ruins_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6ae123c45ab6315c313e3f47400c9495803ee312
Binary files /dev/null and b/img/misc/winter/ruins_night.gif differ
diff --git a/img/misc/winter/schooldawn.png b/img/misc/winter/schooldawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc9e413ab2751feafce479afbd4f65e614917cbd
Binary files /dev/null and b/img/misc/winter/schooldawn.png differ
diff --git a/img/misc/winter/schoolday.png b/img/misc/winter/schoolday.png
new file mode 100644
index 0000000000000000000000000000000000000000..33584035c4682b2e979028a3a5da9a5b90721234
Binary files /dev/null and b/img/misc/winter/schoolday.png differ
diff --git a/img/misc/winter/schooldusk.png b/img/misc/winter/schooldusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..07f0f9937a33e298296aa8291488b1c387b48c4b
Binary files /dev/null and b/img/misc/winter/schooldusk.png differ
diff --git a/img/misc/winter/schoolnight.png b/img/misc/winter/schoolnight.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e7947744057dc72fc33cf43345f19dc36f39a97
Binary files /dev/null and b/img/misc/winter/schoolnight.png differ
diff --git a/img/misc/winter/shopping_centre_dawn.png b/img/misc/winter/shopping_centre_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..d10c4406aacff5a926e6ba15c18ca38dde8c453e
Binary files /dev/null and b/img/misc/winter/shopping_centre_dawn.png differ
diff --git a/img/misc/winter/shopping_centre_day.png b/img/misc/winter/shopping_centre_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..8618ff3b576f223f96c76e327c9ffe08200a2917
Binary files /dev/null and b/img/misc/winter/shopping_centre_day.png differ
diff --git a/img/misc/winter/shopping_centre_dusk.png b/img/misc/winter/shopping_centre_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..373dfa6e75148f626443e1456e3c53f03eb4b343
Binary files /dev/null and b/img/misc/winter/shopping_centre_dusk.png differ
diff --git a/img/misc/winter/shopping_centre_night.png b/img/misc/winter/shopping_centre_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..272ae37b448b7d4723ec2ecac333d2336fba9bba
Binary files /dev/null and b/img/misc/winter/shopping_centre_night.png differ
diff --git a/img/misc/winter/snowdawn.gif b/img/misc/winter/snowdawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4805aab0a0e87be1633534aa8b92dbc93017d202
Binary files /dev/null and b/img/misc/winter/snowdawn.gif differ
diff --git a/img/misc/winter/snowday.gif b/img/misc/winter/snowday.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e7232d74e9803358ccc8a5761500f9302c1c8605
Binary files /dev/null and b/img/misc/winter/snowday.gif differ
diff --git a/img/misc/winter/snowdusk.gif b/img/misc/winter/snowdusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c187b8e746f389a8a51fca97507236f204b0318d
Binary files /dev/null and b/img/misc/winter/snowdusk.gif differ
diff --git a/img/misc/winter/snownight.gif b/img/misc/winter/snownight.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8089aaf71bfe5e034c476a2f5ac999afc18da9b2
Binary files /dev/null and b/img/misc/winter/snownight.gif differ
diff --git a/img/misc/winter/spa_dawn.gif b/img/misc/winter/spa_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..da52a5d312a941a9db2a5574cfa36b82d73495f2
Binary files /dev/null and b/img/misc/winter/spa_dawn.gif differ
diff --git a/img/misc/winter/spa_day.gif b/img/misc/winter/spa_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..17958dd1a2d897fc07a32d5a11d5d2558c781257
Binary files /dev/null and b/img/misc/winter/spa_day.gif differ
diff --git a/img/misc/winter/spa_dusk.gif b/img/misc/winter/spa_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1d5e744746dcfda2feeaef5dafb3e4e52cc49a9c
Binary files /dev/null and b/img/misc/winter/spa_dusk.gif differ
diff --git a/img/misc/winter/spa_night.gif b/img/misc/winter/spa_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..28b7d9bf27101614e7fa44cc0971df522a6df41f
Binary files /dev/null and b/img/misc/winter/spa_night.gif differ
diff --git a/img/misc/winter/strip_club_dawn.png b/img/misc/winter/strip_club_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbde92c8aed3a61de16127b92f7da0caee927f7e
Binary files /dev/null and b/img/misc/winter/strip_club_dawn.png differ
diff --git a/img/misc/winter/strip_club_day.png b/img/misc/winter/strip_club_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d75465c92bb51cfe24e3809385d29ea06009679
Binary files /dev/null and b/img/misc/winter/strip_club_day.png differ
diff --git a/img/misc/winter/strip_club_dusk.png b/img/misc/winter/strip_club_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..5dba47c1a5262e0a4e4a78c5e6f471f9b6a6c7ca
Binary files /dev/null and b/img/misc/winter/strip_club_dusk.png differ
diff --git a/img/misc/winter/strip_club_night.png b/img/misc/winter/strip_club_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..5ecdb2fd54c7a80c09ec46acfa44bf9410f844f2
Binary files /dev/null and b/img/misc/winter/strip_club_night.png differ
diff --git a/img/misc/winter/templedawn.png b/img/misc/winter/templedawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..4624947763047546b604b7502031bc57dc0398d0
Binary files /dev/null and b/img/misc/winter/templedawn.png differ
diff --git a/img/misc/winter/templeday.png b/img/misc/winter/templeday.png
new file mode 100644
index 0000000000000000000000000000000000000000..c27160cc31f43506fb1d577c4fe57cdbd05a92d4
Binary files /dev/null and b/img/misc/winter/templeday.png differ
diff --git a/img/misc/winter/templedusk.png b/img/misc/winter/templedusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..d7b2ee2d8c9464f97e7a22231e19998c26f58c2f
Binary files /dev/null and b/img/misc/winter/templedusk.png differ
diff --git a/img/misc/winter/templenight.png b/img/misc/winter/templenight.png
new file mode 100644
index 0000000000000000000000000000000000000000..a39a391968c4e70bd0f4c6f59447ecdfce919699
Binary files /dev/null and b/img/misc/winter/templenight.png differ
diff --git a/img/misc/winter/tentacles_dawn.gif b/img/misc/winter/tentacles_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3b58edf3b4ee111525786a85141b66ad95bcecdc
Binary files /dev/null and b/img/misc/winter/tentacles_dawn.gif differ
diff --git a/img/misc/winter/tentacles_day.gif b/img/misc/winter/tentacles_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..eac8f1b94ea8c39c916efdfdd67892487102e81a
Binary files /dev/null and b/img/misc/winter/tentacles_day.gif differ
diff --git a/img/misc/winter/tentacles_dusk.gif b/img/misc/winter/tentacles_dusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..eb2c1067b16f1b8cce40e46b7266ac88aeaa2f98
Binary files /dev/null and b/img/misc/winter/tentacles_dusk.gif differ
diff --git a/img/misc/winter/tentacles_night.gif b/img/misc/winter/tentacles_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7c092f50d0108f591dfe0ebf8a86eb549f055da4
Binary files /dev/null and b/img/misc/winter/tentacles_night.gif differ
diff --git a/img/misc/winter/town_dawn.gif b/img/misc/winter/town_dawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..44573a2866a3dd3790836a4ad563a60e5d67ce14
Binary files /dev/null and b/img/misc/winter/town_dawn.gif differ
diff --git a/img/misc/winter/town_day.gif b/img/misc/winter/town_day.gif
new file mode 100644
index 0000000000000000000000000000000000000000..50325a2adbe268b96cb60ddf25be5bebf4f4d053
Binary files /dev/null and b/img/misc/winter/town_day.gif differ
diff --git a/img/misc/winter/town_dusk.png b/img/misc/winter/town_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..d486ce05552f752a28bb0742948c8e3f78b20b7e
Binary files /dev/null and b/img/misc/winter/town_dusk.png differ
diff --git a/img/misc/winter/town_night.gif b/img/misc/winter/town_night.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d2f447226938ecffb2ae1b7c858010f0ed2399c9
Binary files /dev/null and b/img/misc/winter/town_night.gif differ
diff --git a/img/misc/winter/wolf_cave_dawn.png b/img/misc/winter/wolf_cave_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..d20bf829af414ad7be1b5a1d456877c8c45ed002
Binary files /dev/null and b/img/misc/winter/wolf_cave_dawn.png differ
diff --git a/img/misc/winter/wolf_cave_day.png b/img/misc/winter/wolf_cave_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..95d85d9e3bcfc624b7f64dfe69bc2dda06a84209
Binary files /dev/null and b/img/misc/winter/wolf_cave_day.png differ
diff --git a/img/misc/winter/wolf_cave_dusk.png b/img/misc/winter/wolf_cave_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..3af1391e1c570290120c826401930a57c1bb0a2e
Binary files /dev/null and b/img/misc/winter/wolf_cave_dusk.png differ
diff --git a/img/misc/winter/wolf_cave_night.png b/img/misc/winter/wolf_cave_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..309c523a040f1b131cf9ffde1bd2dd8ca41a0f38
Binary files /dev/null and b/img/misc/winter/wolf_cave_night.png differ