code:
:: Widgets Time [widget]
<<widget "day">>
<<if $statFreeze isnot true>>
	/*<<run checkNewVersion()>>*/
	<<set $comb to 0>>
	<<seenPassageChecks>>

	<<earnAllFeats true>>
	<<set $noon_check to 0>>
	<<set $dawn_check to 0>>
	<<set $renttime -= 1>>
	<<set $motherwake to 0>>
	<<if $gamemode isnot "hard" and $uncomfortable.lewd is true>>
		<<set $exhibitionism -= 1>>
		<<set $promiscuity -= 1>>
		<<set $deviancy -= 1>>
	<</if>>
	<<set $harpervisit to 0>>
	<<set $yeardays += 1>>
	<<set $scienceinterrupted to 0>>
	<<set $mathsinterrupted to 0>>
	<<set $englishinterrupted to 0>>
	<<set $historyinterrupted to 0>>
	<<set $swimminginterrupted to 0>>
	<<set $headinterrupted to 0>>
	<<set $luncheaten to 0>>
	<<set $canteenapproach to 0>>
	<<set $detentionattended to 0>>
	<<if $locker_suspicion isnot undefined and $locker_suspicion gt 0>>
		<<locker_suspicion -1>>
	<</if>>
	<<unset $locker_mason>>
	<<if $whitneyromance is 1>>
		<<set $bullytimer += 20>>
		<<set $bullytimeroutside += 10>>
	<<elseif $NPCName[$NPCNameList.indexOf("Whitney")].dom gte 20>>
		<<set $bullytimer += 20>>
		<<set $bullytimeroutside += 10>>
	<<else>>
		<<set $bullytimer += 10>>
		<<set $bullytimeroutside += 5>>
	<</if>>
	<<if $NPCName[$NPCNameList.indexOf("Whitney")].lust gte 1>>
		<<set $bullytimer += ($NPCName[$NPCNameList.indexOf("Whitney")].lust / 5)>>
		<<set $bullytimeroutside += ($NPCName[$NPCNameList.indexOf("Whitney")].lust / 10)>>
	<</if>>
	<<set $bullygate to 0>>
	<<set $whitney_toilet_check to 0>>
	<<unset $whitney_park>>
	<<unset $whitney_text_trigger>>
	<<unset $whitneyFlirt>>
	<<unset $whitneyChat>>
	<<unset $whitneyAsk>>
	<<unset $whitney_text>>
	<<unset $whitney_text_trigger>>
	<<set $policecollarseduceattempt to 0>>
	<<set $tenyclusPlayed to 0>>
	<<unset $beachstrip>>
	<<if $compoundstate is 1>>
		<<set $compoundstate to 0>>
	<</if>>
	<<set $schooleventtimer -= 1>>
	<<if $robindebtevent gt 0>>
		<<set $robindebtevent -= 1>>
	<</if>>
	<<unset $robin_tending>>
	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gt 0>>
		<<npcincr Robin trauma -1>>
	<</if>>
	<<unset $robinlocationoverride>>
	<<set $baileyvisit to 0>>
	<<set $robinwalk to 0>>
	<<if $weekday is 7 and $brothelshowdata.type isnot "none" and not $brothelshowdata.done and $brothelshowdata.intro>>
		<<set $brothelshowdata.missed to true>><<set $brothelshowdata.type to "none">>
	<</if>>
	<<if $weekday is 7>>
		<<set $brothelshowdata.done to false>>
	<</if>>
	<<set $robinhugcry to 0>>
	<<set $robinhugcomplain to 0>>
	<<set $robinblame to 0>>
	<<set $robinpersecute to 0>>
	<<set $robinpolicebody to 0>>
	<<set $robinpolicepay to 0>>
	<<if $scienceproject is "ongoing">>
		<<set $scienceprojectdays -= 1>>
		<<if $scienceprojectdays lt 0>>
			<<set $scienceproject to "done">>
			<<scienceprojectfinish>>
		<</if>>
	<</if>>
	<<if $mathsproject is "ongoing">>
		<<set $mathsprojectdays -= 1>>
		<<if $mathsprojectdays lt 0>>
			<<set $mathsproject to "done">>
			<<mathsprojectfinish>>
		<</if>>
		<<set $mathslibrarystudent to 0>>
	<</if>>
	<<if $lakecouple is 1>>
		<<set $lakecouple to 0>>
	<</if>>
	<<if $medicated>>
		<<set $medicated -= 1>>
		<<set $medicated *= 0.5>>
		<<set $medicated = Math.trunc($medicated)>>
		<<if $medicated lt 0>>
			<<set $medicated to 0>>
		<</if>>
	<</if>>
	<<if $asylummedicated>>
		<<set $asylummedicated -= 1>>
		<<set $asylummedicated *= 0.5>>
		<<set $asylummedicated = Math.trunc($asylummedicated)>>
		<<if $asylummedicated lt 0>>
			<<set $asylummedicated to 0>>
		<</if>>
	<</if>>
	<<set $boysroomentered to 0>>
	<<set $girlsroomentered to 0>>
	<<set $famepark -= 7>>
	<<set $famepark = Math.clamp($famepark, 0, 100)>>
	<<unset $robinbeachpolice>>
	<<unset $robinparksnow>>
	<<set $sewersfeeding to 0>>
	<<set $sewerssex to 0>>
	<<set $museumgreengemtouch to 0>>
	<<unset $fenceclimb>>
	<<set $cafeeaten to 0>>
	<<set $mirrortentacles to 0>>
	<<set $massattended to 0>>
	<<set $dockexhibitionism to 0>>
	<<set $brothel_rivalry_timer -= 1>>
	<<if $museuminterest gte 60>>
		<<set $museuminterest -= 3>>
	<</if>>
	<<set $museuminterest -= 2>>
	<<set $museuminterest = Math.clamp($museuminterest, 0, 100)>>
	<<if $weekday is 2>>
		<<unset $museumhorse>>
		<<unset $museumduck>>
	<</if>>
	<<set $leightondanceoffered to 0>>
	<<set $home_event_timer -= 1>>
	<<set $home_event to 1>>
	<<set $rng to random(1, 100)>>
	<<if $rng gte 95>>
		<<set $brothel_basement_price to 3000>>
	<<elseif $rng gte 85>>
		<<set $brothel_basement_price to 2000>>
	<<elseif $rng gte 45>>
		<<set $brothel_basement_price to 1000>>
	<<else>>
		<<set $brothel_basement_price to 500>>
	<</if>>
	<<if $chef_rework gte 1>>
		<<set $chef_rework -= 1>>
	<</if>>
	<<if $slimeSleepEvent gt 0>>
		<<set $slimeSleepEvent -= 1>>
	<</if>>
	<<if $slimeSleepEvent is 0>>
		<<unset $slimeEvent>>
	<</if>>
	<<if $temple_garden gte 1>>
		<<set $temple_garden -= 10>>
		<<set $temple_garden = Math.clamp($temple_garden, 0, 100)>>
	<</if>>
	<<if $temple_quarters gte 1>>
		<<set $temple_quarters -= 10>>
		<<set $temple_quarters = Math.clamp($temple_quarters, 0, 100)>>
	<</if>>
	<<if $temple_chastity_timer gt 0>>
		<<set $temple_chastity_timer -= 1>>
	<</if>>
	<<if $temple_rank isnot "prospective" and $temple_rank isnot "initiate">>
		<<if $grace gte 1>>
			<<grace -1>>
		<</if>>
	<</if>>
	<<if $temple_jordan_prayer is 1>>
		<<unset $temple_jordan_prayer>>
	<</if>>
	<<if $temple_event isnot undefined>>
		<<set $temple_event to 1>>
	<</if>>
	<<if $wolfcavebreast gte 1>>
		<<unset $wolfcavebreast>>
	<</if>>
	<<if $syndromewolves is 1>>
		<<wolf_cave_update>>
		<<if $wolfchallengetimer is undefined>>
			<<set $wolfchallengetimer to 14>>
		<<else>>
			<<set $wolfchallengetimer-->>
		<</if>>
	<</if>>
	<<set $halltopic to random(1,3)>>
	<<set $hallraylan to random(1,10)>>
	<<unset $chastquestfailed>>
	<<unset $blackWolfMonsterRoll>>
	<<unset $temple_pray>>
	<<unset $lake_meditate>>
	<<unset $ex_day>>
	<<unset $ex_club>>
	<<unset $ex_brothel>>
	<<unset $ex_studio>>
	<<unset $ex_high>>
	<<unset $ex_stall>>
	<<unset $ex_mason>>
	<<unset $ex_flyover>>
	<<unset $ex_cream>>
	<<unset $ex_road>>
	<<unset $ex_fence>>
	<<unset $mason_spoken>>
	<<unset $stall_rented>>
	<<unset $rocks_pool_invite>>
	<<set $bird.satisfied to undefined>>
	<<unset $bird_wash>>
	<<unset $birdDailyGreeting>>
	<<unset $greatHawkMonsterRoll>>
	<<unset $estate_bluffed>>
	<<unset $estate_chaos>>
	<<prison_day>>
	<<if $stall_rejected gte 1>>
		<<set $stall_rejected -= 1>>
		<<set $stall_rejected = Math.clamp($stall_rejected, 0, 100)>>
	<</if>>
	<<if $mason_pond is 3>>
		<<if $weather isnot "rain" and $weather isnot "snow">>
			<<set $mason_pond_timer -= 1>>
		<</if>>
		<<if $mason_pond_timer lte 0>>
			<<unset $mason_pond_timer>>
			<<set $mason_pond to 4>>
		<</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>>
	<<unset $estate_done>>
	<<if $community_service gte 1>>
		<<if $community_service_done gte 1>>
		<<elseif !["asylum","prison"].includes($location)>>
			<<crimeup 200>>
			<<set $effectsmessage to 1>>
			<<set $community_message to "missed">>
		<</if>>
		<<unset $community_service_done>>
	<</if>>
	<<unset $robin_history_chat>>
	<<if $exhibitionism gte 35 or $promiscuity gte 35 or $deviancy gte 35>>
		<<set $lewd_unlock to true>>
	<</if>>
	<<unset $bailey_wake_day>>

	<<unset $pharmTriedSeduction>>
	<<unset $pharmSexFinished>>
	<<unset $pharmClosed>>
	<<set $pharmNurseGender = (random(100) gt $malechance ? "f" : "m")>>
	<<set $pharmNurseLvl = random(0, 18)>>

	<<set _skin to Object.values($skin)>>
	<<set _seals to []>>
	<<for _t to 0; _t lt Object.values($skin).length; _t++>>
		<<if _skin[_t].special is "magic">>
			<<set _seals.pushUnique(_skin[_t].writing)>>
		<</if>>
	<</for>>

	<<if _seals.includes("seal of purity")>>
		<<purity 1>>
	<</if>>
	<<if _seals.includes("seal of impurity")>>
		<<purity -1>>
	<</if>>
	<<if _seals.includes("seal of awareness")>>
		<<set $awareness += 10>>
	<</if>>
	<<if _seals.includes("seal of ignorance")>>
		<<set $awareness -= 10>>
	<</if>>
	<<if _seals.includes("seal of skulduggery")>>
		<<set $skulduggery += 1>>
	<</if>>
	<<if _seals.includes("seal of dancing")>>
		<<set $dancing += 1>>
	<</if>>
	<<if _seals.includes("seal of tending")>>
		<<set $tending += 1>>
	<</if>>
	<<if _seals.includes("seal of swimming")>>
		<<set $swimming += 1>>
	<</if>>
	<<if _seals.includes("seal of athletics")>>
		<<set $athletics += 1>>
	<</if>>
	<<if _seals.includes("seal of science")>>
		<<set $science += 10>>
	<</if>>
	<<if _seals.includes("seal of maths")>>
		<<set $maths += 10>>
	<</if>>
	<<if _seals.includes("seal of English")>>
		<<set $english += 10>>
	<</if>>
	<<if _seals.includes("seal of history")>>
		<<set $history += 10>>
	<</if>>
	<<if _seals.includes("seal of seduction")>>
		<<set $seduction += 1>>
	<</if>>

	<<set $corruption_slime -= 1>>
	<<if _seals.includes("seal of corruption")>>
		<<if $parasite.left_ear.name is "slime">>
			<<set $corruption_slime += 3>>
		<</if>>
		<<if $parasite.right_ear.name is "slime">>
			<<set $corruption_slime += 3>>
		<</if>>
	<<else>>
		<<if $parasite.left_ear.name is "slime">>
			<<set $corruption_slime += 1>>
		<</if>>
		<<if $parasite.right_ear.name is "slime">>
			<<set $corruption_slime += 1>>
		<</if>>
	<</if>>

	<<if _seals.includes("seal of masochism")>>
		<<set $masochism *= 0.99>>
	<<else>>
		<<set $masochism *= 0.985>>
	<</if>>
	<<if $masochism_level is 0>>
		<<if $masochism gte 100>>
			<<set $masochism_level to 1>>
			<<set $effectsmessage to 1>><<set $masochism_message to "up 1">>
		<</if>>
	<<elseif $masochism_level is 1>>
		<<if $masochism gte 300>>
			<<set $masochism_level to 2>>
			<<set $effectsmessage to 1>><<set $masochism_message to "up 2">>
		<<elseif $masochism lte 50>>
			<<set $masochism_level to 0>>
			<<set $effectsmessage to 1>><<set $masochism_message to "down 0">>
		<</if>>
	<<elseif $masochism_level is 2>>
		<<if $masochism gte 500>>
			<<set $masochism_level to 3>>
			<<set $effectsmessage to 1>><<set $masochism_message to "up 3">>
		<<elseif $masochism lte 200>>
			<<set $masochism_level to 1>>
			<<set $effectsmessage to 1>><<set $masochism_message to "down 1">>
		<</if>>
	<<elseif $masochism_level is 3>>
		<<if $masochism gte 800>>
			<<set $masochism_level to 4>>
			<<set $effectsmessage to 1>><<set $masochism_message to "up 4">>
		<<elseif $masochism lte 400>>
			<<set $masochism_level to 2>>
			<<set $effectsmessage to 1>><<set $masochism_message to "down 2">>
		<</if>>
	<<elseif $masochism_level is 4>>
		<<if $masochism lte 700>>
			<<set $masochism_level to 3>>
			<<set $effectsmessage to 1>><<set $masochism_message to "down 3">>
		<</if>>
	<</if>>

	<<if _seals.includes("seal of sadism")>>
		<<set $sadism *= 0.99>>
	<<else>>
		<<set $sadism *= 0.985>>
	<</if>>
	<<if $sadism_level is 0>>
		<<if $sadism gte 100>>
			<<set $sadism_level to 1>>
			<<set $effectsmessage to 1>><<set $sadism_message to "up 1">>
		<</if>>
	<<elseif $sadism_level is 1>>
		<<if $sadism gte 300>>
			<<set $sadism_level to 2>>
			<<set $effectsmessage to 1>><<set $sadism_message to "up 2">>
		<<elseif $sadism lte 50>>
			<<set $sadism_level to 0>>
			<<set $effectsmessage to 1>><<set $sadism_message to "down 0">>
		<</if>>
	<<elseif $sadism_level is 2>>
		<<if $sadism gte 500>>
			<<set $sadism_level to 3>>
			<<set $effectsmessage to 1>><<set $sadism_message to "up 3">>
		<<elseif $sadism lte 200>>
			<<set $sadism_level to 1>>
			<<set $effectsmessage to 1>><<set $sadism_message to "down 1">>
		<</if>>
	<<elseif $sadism_level is 3>>
		<<if $sadism gte 800>>
			<<set $sadism_level to 4>>
			<<set $effectsmessage to 1>><<set $sadism_message to "up 4">>
		<<elseif $sadism lte 400>>
			<<set $sadism_level to 2>>
			<<set $effectsmessage to 1>><<set $sadism_message to "down 2">>
		<</if>>
	<<elseif $sadism_level is 4>>
		<<if $sadism lte 700>>
			<<set $sadism_level to 3>>
			<<set $effectsmessage to 1>><<set $sadism_message to "down 3">>
		<</if>>
	<</if>>

	<<if $alex_greenhouse is 1>>
		<<if $weather isnot "rain" and $weather isnot "snow">>
			<<set $alex_greenhouse_timer -= 1>>
		<</if>>
		<<if $alex_greenhouse_timer lte 0>>
			<<unset $alex_greenhouse_timer>>
			<<set $alex_greenhouse to 2>>
		<</if>>
	<</if>>

	<<if $furytimer gte 1>>
		<<set $furytimer -=1>>
	<</if>>
	<<if $fate is 0>>
		<<if $NPCName[$NPCNameList.indexOf("Piper")].init is 1 and ($season is "autumn" or $season is "summer")>>
			<<if !$piperFlowerTimer>>
				<<set $piperFlowerTimer to 21>>
				<<set $piperFlowers += random(13, 34)>>
			<<else>>
				<<set $piperFlowerTimer -->>
			<</if>>
			<<set $piperFlowers -= random(0,2)>>
		<</if>>
	<</if>>
	<<unset $piperFlowersgiven>>
	<<unset $flowerSelected>>

	<<if $school_crossdress_message gte 1 or $school_herm_message gte 1>>
		<<set $effectsmessage to 1>>
	<</if>>
	<<unset $school_herm_day>>
	<<unset $school_crossdress_day>>

	<<set $exhibitionismstress1 to 0>>
	<<set $exhibitionismstress2 to 0>>
	<<set $exhibitionismstress3 to 0>>
	<<set $exhibitionismstress4 to 0>>
	<<set $exhibitionismstress5 to 0>>
	<<set $promiscuitystress1 to 0>>
	<<set $promiscuitystress2 to 0>>
	<<set $promiscuitystress3 to 0>>
	<<set $promiscuitystress4 to 0>>
	<<set $promiscuitystress5 to 0>>
	<<set $deviancystress1 to 0>>
	<<set $deviancystress2 to 0>>
	<<set $deviancystress3 to 0>>
	<<set $deviancystress4 to 0>>
	<<set $deviancystress5 to 0>>

	<<if $farm_stage gte 2>>
		<<farm_work_update midnight>>
	<</if>>
	<<if $farm_stage gte 5>>
		<<if $bailey_encroach gte 1>>
			<<farm_aggro 15>>
		<</if>>
		<<if $bailey_encroach gte 2>>
			<<farm_aggro `$bailey_encroach * 3`>>
		<</if>>
		<<if $farm_stage gte 7>>
			<<farm_aggro 5>>
		<</if>>
		<<farm_aggro 5>>
	<</if>>
	<<if $farm_stage gte 7>>
		<<if $farm.stock>>
			<<set $farm.stock.truffles *= 0.8>>
			<<set $farm.stock.truffles to Math.trunc($farm.stock.truffles)>>
			<<set $farm.stock.milk *= 0.8>>
			<<set $farm.stock.milk to Math.trunc($farm.stock.milk)>>
			<<set $farm.stock.eggs *= 0.8>>
			<<set $farm.stock.eggs to Math.trunc($farm.stock.eggs)>>
		<</if>>
		<<if $farm.woodland gte 3>>
			<<farm_stock truffles 6 12>>
			<<farm_pigs -2>>
		<<elseif $farm.woodland gte 1>>
			<<farm_stock truffles 3 6>>
			<<farm_pigs -1>>
		<</if>>
		<<if $farm.barn gte 2>>
			<<farm_stock milk 12 24>>
		<<elseif $farm.barn gte 1>>
			<<farm_stock milk 6 12>>
		<</if>>
		<<if $farm.coop gte 2>>
			<<farm_stock eggs 24 48>>
		<<elseif $farm.coop gte 1>>
			<<farm_stock eggs 12 24>>
		<</if>>
		<<if $farm.kennel gte 1>>
			<<farm_dogs -2>>
			<<farm_cattle -1>>
		<</if>>
	<</if>>
	<<if $farm_stage gte 9>>
		<<if $lurkers_stored gte 1>>
			<<set $farm.still_timer -= 1>>
			<<if $farm.still_timer lte 0>>
				<<set $lurkers_stored -= 1>>
				<<set $phials_stored += 1>>
				<<set $farm.still_timer to 7>>
			<</if>>
		<</if>>
	<</if>>
	<<if $farm_stage gte 7>>
		<<set $farm_attack_timer -= 1>>
		<<if $farm_attack_timer lt 0>>
			<<farm_attack_auto>>
		<</if>>
	<</if>>
	<<if $farm_countdown gte 1>>
		<<set $farm_countdown -= 1>>
	<</if>>
	<<unset $farm_work>>
	<<unset $farm_count>>
	<<unset $farm_naked>>
	<<unset $farm_event>>
	<<unset $farm_end>>
	<<if $farm_yield isnot undefined>>
		<<if $farm_yield_alex is undefined>>
			<<set $farm_yield_alex to 0>>
		<</if>>
		<<set $farm_yield_alex += $farm_yield>>
		<<unset $farm_yield>>
	<</if>>
	<<unset $alex_breakfast>>
	<<unset $alex_tea>>
	<<unset $alex_admin_oral>>
	<<unset $alex_to_bed>>
	<<if $alex_countdown gte 1>>
		<<set $alex_countdown -= 1>>
	<</if>>
	<<farm_build_day>>

	<<if $schooltrait gte 4>>
		<<trauma -50>>
	<<elseif $schooltrait is 3>>
		<<trauma -40>>
	<<elseif $schooltrait is 2>>
		<<trauma -30>>
	<<elseif $schooltrait is 1>>
		<<trauma -20>>
	<<else>>
		<<trauma -10>>
	<</if>>
	<<if $robinpaid gte 1>>
		<<trauma -25>>
	<</if>>

	<<if $awareness gte 300>>
		<<set $awarelevel to 2>>
	<<elseif $awareness gte 200>>
		<<set $awarelevel to 1>>
	<<elseif $awareness lte -1>>
		<<set $awarelevel to -1>>
	<<else>>
		<<set $awarelevel to 0>>
	<</if>>
	<<if $awarelevel lte 1 and $loveInterest.secondary isnot "None">>
		<<set $loveInterest.secondary to "None">><<set $loveInterestAwareMessage to 0>>
		You feel that having multiple lovers is wrong. You can no longer choose more than one love interest.
	<</if>>
	<<if $awarelevel gte 2 and $loveInterest.primary isnot "None" and $loveInterest.secondary is "None" and $loveInterestAwareMessage is 0>>
		<<set $loveInterestAwareMessage to 1>>
		Your mind is open to the possibility of multiple lovers. You may now choose a second love interest.
	<</if>>

	<<pregProgressDay>>
	<<creatureContainersProgressDay>>
	<<set $seenPets to false>>

	<<if $awareness lte -200 and $innocencestate isnot 1>>
		<<set $innocencestate to 1>>
		<<set $innocencemessage to "start">>
		<<set $innocencetrauma to $trauma>>
		<<set $trauma to 0>>
	<<elseif $awareness gte 0 and $innocencestate is 1>>
		<<set $innocencestate to 0>>
		<<set $trauma to $innocencetrauma>>
		<<set $innocencemessage to "end">>
	<</if>>

	<<if $location is "asylum">>
		<<set $asylumbound -= 1>>
		<<set $asylumfirsttreatment to 0>>
		<<set $asylumsecondtreatment to 0>>
		<<set $asylumassessment to 0>>
		<<set $asylumexercise to 0>>
	<</if>>

	<<set $monthday += 1>>

	<<set _months to ["january","february","march","april","may","june","july","august","september","october","november","december"]>>
	<<switch $month>>
	<<case "february">>
		<<if $year % 4 is 0>>
			<<set _lastDay to 29>>
		<<else>>
			<<set _lastDay to 28>>
		<</if>>
		<<set _monthDefault to true>>
	<<case "april" "june" "september" "november">>
		<<set _lastDay to 30>>
		<<set _monthDefault to true>>
	<<case "december">>
		<<if $monthday gt 31>>
			<<set $monthday to 1>>
			<<set $month to "january">>
			<<set $year += 1>>
		<</if>>
	<<default>>
		<<set _lastDay to 31>>
		<<set _monthDefault to true>>
	<</switch>>

	<<if _monthDefault is true>>
		<<if $monthday gt _lastDay>>
			<<set $monthday to 1>>
			<<if $month is "august">>
				<<year>>
			<</if>>
			<<set $month to _months[_months.indexOf($month) + 1]>>
		<</if>>
	<</if>>

	<<if _months.indexOf($month) gte 11 or _months.indexOf($month) lte 1>>
		<<set $season to "winter">>
	<<elseif _months.indexOf($month) gte 8>>
		<<set $season to "autumn">>
	<<elseif _months.indexOf($month) gte 5>>
		<<set $season to "summer">>
	<<elseif _months.indexOf($month) gte 2>>
		<<set $season to "spring">>
	<</if>>

	<<moonstate>>

	<<if $schoolday is 1 and $location isnot "prison">>
		<<if $scienceattended isnot 1>>
			<<set $sciencemissed += 1>><<set $lessonmissedtext += 1>><<set $lessonmissed += 1>><<set _lessonmissed to true>>
		<<else>>
			<<set $sciencemissed -= 1>><<set $lessonmissed -= ($lessonmissed gt 0 ? 1 : 0)>>
		<</if>>
		<<if $mathsattended isnot 1>>
			<<set $mathsmissed += 1>><<set $lessonmissedtext += 1>><<set $lessonmissed += 1>><<set _lessonmissed to true>>
		<<else>>
			<<set $mathsmissed -= 1>><<set $lessonmissed -= ($lessonmissed gt 0 ? 1 : 0)>>
		<</if>>
		<<if $englishattended isnot 1>>
			<<set $englishmissed += 1>><<set $lessonmissedtext += 1>><<set $lessonmissed += 1>><<set _lessonmissed to true>>
		<<else>>
			<<set $englishmissed -= 1>><<set $lessonmissed -= ($lessonmissed gt 0 ? 1 : 0)>>
		<</if>>
		<<if $historyattended isnot 1>>
			<<set $historymissed += 1>><<set $lessonmissedtext += 1>><<set $lessonmissed += 1>><<set _lessonmissed to true>>
		<<else>>
			<<set $historymissed -= 1>><<set $lessonmissed -= ($lessonmissed gt 0 ? 1 : 0)>>
		<</if>>
		<<if $swimmingattended isnot 1>>
			<<set $swimmingmissed += 1>><<set $lessonmissedtext += 1>><<set $lessonmissed += 1>><<set _lessonmissed to true>>
		<<else>>
			<<set $swimmingmissed -= 1>><<set $lessonmissed -= ($lessonmissed gt 0 ? 1 : 0)>>
		<</if>>
		<<set $scienceattended to 0>>
		<<set $mathsattended to 0>>
		<<set $englishattended to 0>>
		<<set $historyattended to 0>>
		<<set $swimmingattended to 0>>
	<</if>>

	<<switch $month>>
	<<case "january" "may" "september">>
		<<if $weekday is 1 or $weekday is 2>>
			<<set $schoolterm to 1>>
		<</if>>
	<<case "april" "july" "december">>
		<<if $weekday is 7 or $weekday is 1 or $weekday is 2>>
			<<set $schoolterm to 0>>
		<</if>>
	<</switch>>

	<<if $weekday isnot 1 and $weekday isnot 7 and $schoolterm is 1>>
		<<set $schoolday to 1>>
	<<else>>
		<<set $schoolday to 0>>
	<</if>>
	<<if $month is "february" and $monthday gte 7 and $monthday lte 14>>
		<<set $valentines to 1>>
	<<else>>
		<<set $valentines to 0>>
		<<unset $valentines_eden>>
		<<unset $valentines_eden_bought>>
		<<unset $valentines_eden_bath>>
		<<unset $valentines_eden_breakfast>>
	<</if>>
	<<if $month is "october" and $monthday gte 21>>
		<<set $halloween to 1>>
	<<else>>
		<<set $halloween to 0>>
		<<unset $halloween_whitney>>
		<<unset $halloween_whitney_proposed>>
		<<unset $halloween_robin>>
		<<unset $halloween_robin_costume>>
		<<unset $halloween_winter_key>>
		<<unset $halloween_eden>>
		<<unset $halloween_eden_bought>>
		<<unset $halloween_eden_candy_given>>
		<<if $halloween_trick_NPC>>
		<</if>>
	<</if>>
	<<if $month is "november" and $monthday is 2>>
		<<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>>
		<<unset $christmas_gift_eden>>
		<<unset $christmas_gift_eden_given>>
		<<unset $christmas_kylar>>
		<<unset $christmas_whitney>>
		<<unset $edenmeal>>
		<<unset $eden_christmas_dinner>>
		<<unset $christmas_wraith>>
	<</if>>
	<<if $bell_timer>>
		<<set $bell_timer -= 1>>
	<</if>>
	<<if $weekday isnot 1>>
		<<if $robindebtevent is 0>>
			<<set $robinmissing to 0>>
		<</if>>
	<</if>>

	<<if $birthmonth is $month and $birthday is $monthday>>

	<</if>>

	<<physicalAdjustments>>

	<<if $player.penisExist>>
		<<set _amount to $penissize - 1>>
		<<if $semen_volume lte 24>>
			<<set _amount++>>
		<</if>>
		<<set _amount -= Math.floor($semen_volume / 250)>>
		<<semenvolume _amount>>
	<<else>>
		<<set $semen_volume to 0>>
		<<set $semen_amount to 0>>
	<</if>>
	<<milkvolume -2>>

	<<if $purity + $semen_volume lt 980>>
		<<semenvolume 3>>
	<</if>>

	<<if $purity + $milk_volume lt 1000>>
		<<set $milk_volume += 10>>
	<</if>>

	<<set $lactation_pressure -= 1>>
	<<if $lactating is 1>>
		<<if $lactation_pressure lt 30 or $breastsize lte 0>>
			<<set $lactating to 0>>
			<<set $effectsmessage to 1>>
			<<set $lactationmessage to 1>>
		<</if>>
	<<else>>
		<<if $lactation_pressure gte 30 and $breastfeedingdisable is "f" and $breastsize gte 1>>
			<<set $lactating to 1>>
			<<set $effectsmessage to 1>>
			<<set $lactationmessage to 1>>
		<</if>>
	<</if>>

	<<set $nectar_addiction -= 5>>
	<<if $backgroundTraits.includes("plantlover")>>
		<<set $nectar_timer-->>
		<<if $nectar_timer lte 0>>
			<<set $backgroundTraits.delete("plantlover")>>
			<<set $effectsmessage to 1>>
			<<set $nectarmessage to "traitLost">>
			<<set $nectar_addiction to 0>>
		<<elseif $nectar_timer lte 14>>
			<<set $effectsmessage to 1>>
			<<set $nectarmessage to "withdrawals">>
		<</if>>
	<<else>>
		<<if $nectar_addiction gte 150>>
			<<set $backgroundTraits.pushUnique("plantlover")>>
			<<set $effectsmessage to 1>>
			<<set $nectarmessage to "traitGain">>
			<<set $nectar_timer to 21>>
		<</if>>
	<</if>>

	<<if $purity lte 0>>
		<<if $fallenangel gte 2>>
			<<set $demonbuild to 30>>
			<<set $demon to 6>>
			<<set $fallenangel to 1>>
			<<set $specialTransform to 1>>
			Your blackened wings turn blacker still. Your shattered halo fades. Horns sprout from your scalp and a tail sprouts from your lower back. Your sense of loss is replaced with a desire for revenge.

			<<set $transformationParts.fallenAngel.halo to "disabled">>
			<<set $transformationParts.fallenAngel.wings to "disabled">>

			<<set $transformationParts.demon.horns to "default">>
			<<set $transformationParts.demon.tail to "default">>
			<<set $transformationParts.demon.wings to "default">>
			<<earnFeat "Demon">>
			<<garousal>><<arousal 600>>
		<</if>>
		<<set $demonbuild += 1>>
	<<else>>
		<<set $demonbuild -= 1>>
	<</if>>

	<<if $purity gte 1 and ($demon gte 6 or ($demon gte 1 and $demonFeat is true))>>
		You feel a terrible light sear through you.
		<<gstress>><<set $stress += $stressmax>>
	<</if>>

	<<if $featsPurityBoost>>
		<<purity $featsPurityBoost>>
	<</if>>

	<<purity 1>>
	<<if $player.virginity.vaginal is true and $player.virginity.penile is true>>
		<<purity 2>>
		<<if $purity gte 1000>>
			<<set $angelbuild += 2>>
		<</if>>
	<</if>>

	<<if $angel gte 4>>
		<<set $angelBanishMax to Math.floor($angelbuild / 10)>>
		<<set $angelBanish to $angelBanishMax>>
	<<else>>
		<<set $angelBanish to 0>>
	<</if>>

	<<set $angelbuild -= 1>>

	<<if $fallenangel gte 2>>
		<<purity -10>>
	<</if>>

	<<set $physiquesize to (1000 * $devlevel)>>

	<<if $physique gte 1000>>
		<<if $farm_stage gte 6>>
			<<set $physique to ($physique - ($physique / 3000))>>
		<<else>>
			<<set $physique to ($physique - ($physique / 2500))>>
		<</if>>
	<</if>>
	<<if _seals.includes("seal of physique")>>
		<<set $physique += 10>>
	<</if>>

	<<if _seals.includes("seal of willpower")>>
		<<set $willpower *= 0.999>>
	<<else>>
		<<set $willpower *= 0.99>>
	<</if>>

	<<tanned -60 true>>
	<<set $skinColor.sunBlock to false>>

	<<set $hairlength += 3>>
	<<set $fringelength += 3>>
	<<calchairlengthstage>>

	<<if $schoolterm is 1>>
		<<if $weekday is 3 or $weekday is 4 or $weekday is 5 or $weekday is 6 or $weekday is 7>>
			<<set _delinquencyDecay to 1>>
			<<if $NPCName[$NPCNameList.indexOf("Leighton")].love gte $npclovehigh>>
				<<set _delinquencyDecay += 1>>
			<</if>>
			<<if $NPCName[$NPCNameList.indexOf("Sirris")].love gte $npclovehigh>>
				<<set _delinquencyDecay += 1>>
			<</if>>
			<<if $NPCName[$NPCNameList.indexOf("River")].love gte $npclovehigh>>
				<<set _delinquencyDecay += 1>>
			<</if>>
			<<if $NPCName[$NPCNameList.indexOf("Doren")].love gte $npclovehigh>>
				<<set _delinquencyDecay += 1>>
			<</if>>
			<<if $NPCName[$NPCNameList.indexOf("Winter")].love gte $npclovehigh>>
				<<set _delinquencyDecay += 1>>
			<</if>>
			<<if $NPCName[$NPCNameList.indexOf("Mason")].love gte $npclovehigh>>
				<<set _delinquencyDecay += 1>>
			<</if>>
			<<if _lessonmissed>>
				<<set _delinquencyDecay to Math.floor(_delinquencyDecay / 2)>>
			<</if>>
			<<set $delinquency -= _delinquencyDecay>>
			<<if $schoolfameblackmail isnot undefined>>
				<<set $schoolfameblackmail += 1>>
			<</if>>
		<</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>>

	<<if _seals.includes("seal of beauty")>>
		<<set $beauty += (200 - (($trauma / $traumamax) * 100))>>
	<<else>>
		<<set $beauty += (100 - (($trauma / $traumamax) * 100))>>
	<</if>>

	<<weather_select>>

	<<tending_day>>

	<<if $flashbacktown isnot 0>>
		<<set $flashbacktown -= 1>>
	<</if>>
	<<if $flashbackhome isnot 0>>
		<<set $flashbackhome -= 1>>
	<</if>>
	<<if $flashbackbeach isnot 0>>
		<<set $flashbackbeach -= 1>>
	<</if>>
	<<if $flashbackunderground isnot 0>>
		<<set $flashbackunderground -= 1>>
	<</if>>
	<<if $flashbackschool isnot 0>>
		<<set $flashbackschool -= 1>>
	<</if>>

	<<if $flashbacktown is 1>>
		<<set $flashbacktownready to 1>>
	<</if>>
	<<if $flashbackhome is 1>>
		<<set $flashbackhomeready to 1>>
	<</if>>
	<<if $flashbackbeach is 1>>
		<<set $flashbackbeachready to 1>>
	<</if>>
	<<if $flashbackunderground is 1>>
		<<set $flashbackundergroundready to 1>>
	<</if>>
	<<if $flashbackschool is 1>>
		<<set $flashbackschoolready to 1>>
	<</if>>

	<<set $flashbacktown = Math.clamp($flashbacktown, 0, 14)>>
	<<set $flashbackhome = Math.clamp($flashbackhome, 0, 14)>>
	<<set $flashbackbeach = Math.clamp($flashbackbeach, 0, 14)>>
	<<set $flashbackunderground = Math.clamp($flashbackunderground, 0, 14)>>
	<<set $flashbackschool = Math.clamp($flashbackschool, 0, 14)>>

	<<set $school to $science + $english + $maths + $history>>
	<<if $school gte 2800>>
		<<set $schooltrait to 4>>
	<<elseif $school gte 2000>>
		<<set $schooltrait to 3>>
	<<elseif $school gte 1600>>
		<<set $schooltrait to 2>>
	<<elseif $school gte 1200>>
		<<set $schooltrait to 1>>
	<<else>>
		<<set $schooltrait to 0>>
	<</if>>

	<<if $orgasmstat gte 1000 and $orgasmtrait is 0>>
		<<set $effectsmessage to 1>><<set $orgasm_trait_message to 1>>
		<<set $orgasmtrait to 1>>
	<</if>>

	<<if $ejacstat gte 1000 and $ejactrait is 0>>
		<<set $effectsmessage to 1>><<set $cum_trait_message to 1>>
		<<set $ejactrait to 1>>
	<</if>>

	<<if $moleststat gte 1000 and $molesttrait is 0>>
		<<set $effectsmessage to 1>><<set $molest_trait_message to 1>>
		<<set $molesttrait to 1>>
	<</if>>

	<<if $rapestat gte 500 and $rapetrait is 0>>
		<<set $effectsmessage to 1>><<set $rape_trait_message to 1>>
		<<set $rapetrait to 1>>
	<</if>>

	<<if $beastrapestat gte 100 and $bestialitytrait is 0>>
		<<set $effectsmessage to 1>><<set $bestiality_trait_message to 1>>
		<<set $bestialitytrait to 1>>
	<</if>>

	<<if $tentaclerapestat gte 50 and $tentacletrait is 0>>
		<<set $effectsmessage to 1>><<set $tentacle_trait_message to 1>>
		<<set $tentacletrait to 1>>
	<</if>>

	<<if $swallowedstat gte 20 and $voretrait is 0>>
		<<set $effectsmessage to 1>><<set $vore_trait_message to 1>>
		<<set $voretrait to 1>>
	<</if>>

	<<if $milk_drank_stat gte 1000 and $milkdranktrait is 0>>
		<<set $effectsmessage to 1>><<set $milk_trait_message to 1>>
		<<set $milkdranktrait to 1>>
	<</if>>

	<<unset $edenbreakfast>>
	<<unset $edenbreakfastlust>>
	<<unset $edenbath>>
	<<unset $edenwalk>>
	<<unset $edenwash>>
	<<unset $edenchoplust>>
	<<unset $edenhunting>>
	<<unset $edenlunch>>
	<<unset $edendinner>>
	<<unset $edendistract>>
	<<unset $edenasylumdisarm>>
	<<unset $eden_asylum_rescue>>
	<<unset $eden_sew>>
	<<unset $eden_supplies>>
	<<unset $eden_sweep>>
	<<unset $eden_salve>>
	<<unset $eden_soap>>
	<<unset $eden_search>>
	<<unset $edenexposed>>
	<<unset $edenspringjoin>>
	<<unset $salveuse>>
	<<set $edenmassage to 0>>
	<<set $edenhuntcaught to 0>>
	<<set $edenfarmrescue to 0>>

	<<if $edencoat is 1>>
		<<set $edencoat to 2>>
	<</if>>
	<<if $month isnot "november" and $edenprepare is 1>>
		<<set $edenprepare to 0>>
		<<unset $edenwall>>
		<<unset $edenchimney>>
		<<unset $edenroof>>
	<</if>>
	<<if $edenshoutrescue isnot 1>>
		<<set $edenwhip to 0>>
	<</if>>
	<<set $edendays += 1>>
	<<if $edengarden gte 1>>
		<<set $edengarden -= 1>>
	<</if>>
	<<if $edenshrooms gte 1>>
		<<set $edenshrooms -= 1>>
	<</if>>
	<<if $edenspring gte 1>>
		<<set $edenspring -= 1>>
	<</if>>

	<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "active">>

		<<npcincr Kylar lust 1>>
		<<set $NPCName[$NPCNameList.indexOf("Kylar")].lust to Math.clamp($NPCName[$NPCNameList.indexOf("Kylar")].lust, 0, 100)>>
		<<set $NPCName[$NPCNameList.indexOf("Kylar")].love to Math.clamp($NPCName[$NPCNameList.indexOf("Kylar")].love, 0, 100)>>
		<<set $NPCName[$NPCNameList.indexOf("Kylar")].rage to Math.clamp($NPCName[$NPCNameList.indexOf("Kylar")].rage, 0, 100)>>
		<<set $kylar.timer.halls += (10 + ($NPCName[$NPCNameList.indexOf("Kylar")].lust / 4))>>
		<<set $kylar.timer.home += (10 + ($NPCName[$NPCNameList.indexOf("Kylar")].lust / 4))>>
		<<set $kylar.timer.street += (10 + ($NPCName[$NPCNameList.indexOf("Kylar")].lust / 4))>>
		<<if $kylar.riddle is 1>>
			<<set $kylar.riddle to 2>>
		<<else>>
			<<set $kylar.riddle to 0>>
		<</if>>
		<<if $kylarSeen.includes("fountainIntro") and random(1,100) gte 20>>
			<<set $kylar.fountain to 1>>
		<<else>>
			<<set $kylar.fountain to 0>>
		<</if>>
		<<set $kylarDaily to {}>>
	<</if>>

	<<if $NPCName[$NPCNameList.indexOf("Avery")].state isnot "dismissed">>
		<<set $averyschoolpickup to 0>>
		<<set $averyseen to 0>>
		<<if $averydate is 1>>
			<<set $averydate to 0>>
			<<if $averydateattended isnot 1>>
				<<set $averydatemissed to 1>>
			<</if>>
			<<set $averydateattended to 0>>
		<</if>>
		<<unset $averydatedone>>
		<<if $averyPub is 1>>
			<<unset $averyPub>>
			<<clearNPC avery_sidepiece>>
		<</if>>
	<<else>>
		<<unset $averyDismissalSceneWait>>
	<</if>>

	<<if $sydneyScience isnot 1 and $days gte random(7, 12)>>
		/*<<set $sydneyLate to 1>><<set $sydneyScience to 1>>*/
	<</if>>

	<<if $NPCName[$NPCNameList.indexOf("Sydney")].init is 1>>
		<<NPCStatusCheck "Sydney">>
		<<if $NPCName[$NPCNameList.indexOf("Sydney")].purity gte 1 and $NPCName[$NPCNameList.indexOf("Sydney")].virginity.temple is true>>
			<<npcincr Sydney purity 1>>
		<</if>>
		<<if _sydneyStatus.includes("corrupt")>>
			<<set $NPCName[$NPCNameList.indexOf("Sydney")].title to "fallen">>
		<<else>>
			<<set $NPCName[$NPCNameList.indexOf("Sydney")].title to "faithful">>
		<</if>>
		<<unset $sydneyLate>>
		<<if $schoolday is 1 and random(1, 4) is 1>>
			<<set $sydneyLate to 1>>
		<</if>>
		<<if $sydneySeen.includes("library") and $NPCName[$NPCNameList.indexOf("Sydney")].love gte 60 and $sydneyLibraryEvent is undefined and $NPCName[$NPCNameList.indexOf("Whitney")].init is 1 and $NPCName[$NPCNameList.indexOf("Whitney")].state isnot "dungeon" and !$sydneyLeightonConfrontTimer>>
			<<set $sydneyLibraryEvent to 1>>
		<</if>>
		<<if $sydneySeen.includes("library") and ($sydneyLibraryEvent is 2 or $libraryMoneyStolen or $sydneyStolenKnown) and !$sydneyLeightonConfrontTimer>>
			<<if $sydneyLibraryEvent is 2>>
				<<set $sydneyLeightonConfront to 1>>
				<<set $sydneyLeightonWhitneyGuilty to 1>>
			<<elseif $libraryMoneyStolen gte 100 or $sydneyStolenKnown>>
				<<set $sydneyLeightonConfront to 1>>
				<<set $sydneyLeightonPlayerGuilty to 1>>
			<</if>>
		<<elseif $sydneyLeightonConfrontTimer>>
			<<set $sydneyLeightonConfrontTimer-->>
			<<if $sydneyLeightonConfrontTimer lte 0>>
				<<unset $sydneyLeightonConfrontTimer>>
			<</if>>
		<</if>>
		<<set $sydneyDaily to {}>>
		<<set $sydneyDaily.sex to 0>>
		<<unset $sydneyScienceWarn>>
		<<unset $sydneyPunish>>
		<<unset $sydneyTempleSkip>>

		<<if $sydneyromance is 1 and $sydneyChastityKnown and $NPCName[$NPCNameList.indexOf("Sydney")].love gte 90 and _sydneyStatus.includes("Lust") and $NPCName[$NPCNameList.indexOf("Sydney")].chastity.anus.includes("shield")>>
			<<set $NPCName[$NPCNameList.indexOf("Sydney")].chastity.anus to "">>
			<<set $sydneyAnalShieldComment to true>>
		<</if>>
	<</if>>

	<<if $studyBooks>>
		<<passiveStudy>>
		<<if $studyBooks.rented isnot "none" and $schoolterm is 1>>
			<<if $book_rent_timer gte 0>>
				<<set $book_rent_timer -= 1>>
			<<elseif $book_rent_timer lt 0>>
				<<if $bookOverdue is undefined>>
					<<set $bookOverdue to 0>>
				<</if>>
				<<set $bookOverdue += 1>>
				<<if $bookOverdue gte 7>>
					<<crimeup 1>>
					<<set $delinquency += 5>>

You have a book severely overdue, and the police have been informed.

				<<elseif $bookOverdue gte 3>>
					<<set $delinquency += 3>>

You have a book overdue, and have incurred delinquency.

				<</if>>
			<</if>>
		<</if>>
		<<if $studyBooks.stolen isnot "none" and $schoolterm is 1>>
			<<crimeup 1>>
		<</if>>
		<<if $recentReturnTimer>>
			<<set $recentReturnTimer-->>
			<<if $recentReturnTimer lte 0>>
				<<unset $recentReturnTimer>>
			<</if>>
		<</if>>
	<</if>>

	<<if $bookStolen is 1>>
		<<unset $bookStolen>>
		<<if $bookStolenKnown is undefined>>
			<<set $bookStolenKnown to 1>>
		<</if>>
		<<if $libraryMoneyStolen is undefined>>
			<<set $libraryMoneyStolen to 0>>
		<</if>>
		<<set $libraryMoneyStolen += 20>>
		<<crimeup 20>>
	<</if>>

	<<unset $scienceExcused>>

	<<if $temple_evaluation>>
		<<set $temple_evaluation -= 1>>
		<<if $temple_evaluation lte 0>>
			<<unset $temple_evaluation>>
		<</if>>
	<</if>>

	<<if $wraith>>
		<<if $wraithAnger>>
			<<if $wraithAnger gt 0>>
				<<set $wraithAnger -->>
			<<else>>
				<<set $wraith.offspring to "">>
				<<unset $wraithAnger>>
			<</if>>
		<</if>>
	<</if>>

	<<if $skulduggery gte 1000 and $skulduggeryday lt 1000>>
		Your skulduggery has improved to S.
	<<elseif $skulduggery gte 900 and $skulduggeryday lt 900>>
		Your skulduggery has improved to A+.
	<<elseif $skulduggery gte 800 and $skulduggeryday lt 800>>
		Your skulduggery has improved to A.
	<<elseif $skulduggery gte 700 and $skulduggeryday lt 700>>
		Your skulduggery has improved to B+.
	<<elseif $skulduggery gte 600 and $skulduggeryday lt 600>>
		Your skulduggery has improved to B.
	<<elseif $skulduggery gte 500 and $skulduggeryday lt 500>>
		Your skulduggery has improved to C+.
	<<elseif $skulduggery gte 400 and $skulduggeryday lt 400>>
		Your skulduggery has improved to C.
	<<elseif $skulduggery gte 300 and $skulduggeryday lt 300>>
		Your skulduggery has improved to D+.
	<<elseif $skulduggery gte 200 and $skulduggeryday lt 200>>
		Your skulduggery has improved to D.
	<<elseif $skulduggery gte 100 and $skulduggeryday lt 100>>
		Your skulduggery has improved to F+.
	<</if>>
	<<set $skulduggeryday to $skulduggery>>

	<<transformationStateUpdate>>

	<<if $pbdisable is "f">>
		<<set $pbgrowth += 1>>
		<<if $pbgrowth gte 24>>
			<<set $pblevel to 9>>
		<<elseif $pbgrowth gte 19>>
			<<set $pblevel to 8>>
		<<elseif $pbgrowth gte 14>>
			<<set $pblevel to 7>>
		<<elseif $pbgrowth gte 10>>
			<<set $pblevel to 6>>
		<<elseif $pbgrowth gte 7>>
			<<set $pblevel to 5>>
		<<elseif $pbgrowth gte 5>>
			<<set $pblevel to 3>>
		<<elseif $pbgrowth gte 2>>
			<<set $pblevel to 2>>
		<<elseif $pbgrowth gte 1>>
			<<set $pblevel to 1>>
		<</if>>

		<<if $player.ballsExist is true>>
			<<set $pbgrowthballs += 1>>
			<<if $pbgrowthballs gte 24>>
				<<set $pblevelballs to 9>>
			<<elseif $pbgrowthballs gte 19>>
				<<set $pblevelballs to 7>>
			<<elseif $pbgrowthballs gte 10>>
				<<set $pblevelballs to 5>>
			<<elseif $pbgrowthballs gte 5>>
				<<set $pblevelballs to 3>>
			<</if>>
		<</if>>
	<</if>>

	<<insecurity "penis_tiny" -1>>
	<<insecurity "penis_small" -1>>
	<<insecurity "penis_big" -1>>
	<<insecurity "breasts_tiny" -1>>
	<<insecurity "breasts_small" -1>>
	<<insecurity "breasts_big" -1>>

	<<set $insecurity_penis_tiny = Math.clamp($insecurity_penis_tiny, 0, 1000)>>
	<<set $insecurity_penis_small = Math.clamp($insecurity_penis_small, 0, 1000)>>
	<<set $insecurity_penis_big = Math.clamp($insecurity_penis_big, 0, 1000)>>
	<<set $insecurity_breasts_tiny = Math.clamp($insecurity_breasts_tiny, 0, 1000)>>
	<<set $insecurity_breasts_small = Math.clamp($insecurity_breasts_small, 0, 1000)>>
	<<set $insecurity_breasts_big = Math.clamp($insecurity_breasts_big, 0, 1000)>>

	<<relationshipclamp>>

	<<set $smuggler_timer -= 1>>
	<<if $smuggler_timer lt 0>>
		<<set $smuggler_timer to random(4, 7)>>
		<<if $rng gte 76>>
			<<set $smuggler_location to "forest">>
		<<elseif $rng gte 51>>
			<<set $smuggler_location to "sewer">>
		<<elseif $rng gte 26>>
			<<set $smuggler_location to "beach">>
		<<else>>
			<<set $smuggler_location to "bus">>
		<</if>>
		<<unset $smuggler_known>>
	<</if>>

	<<for _active_bodypart range setup.bodyparts>>
		<<if $skin[_active_bodypart].pen is "marker" and random(1, 2) is 2>>
			<<bodywriting_clear _active_bodypart>>
		<</if>>
	<</for>>

	<<if $weekday is 7>>
		<<set $winterHint to "notGiven">>
	<</if>>

	<<bimboUpdate>>

	<<if $tailorMonthlyService is undefined>>
	<<elseif $tailorMonthlyService is "repair" or $tailorMonthlyService is "discard">>
	<<elseif $tailorMonthlyService gt 0>>
		<<set $tailorMonthlyService-->>
	<<elseif $tailorMonthlyService is 0>>
		<<unset $tailorMonthlyService>>
	<</if>>
	<<if $wardrobeRepair is undefined>>
	<<elseif $wardrobeRepair.timeLeft is 1>>
		<<set $wardrobeRepair.timeLeft to 0>>
	<</if>>

	<<if $clothingShop.ban gt 0>>
		<<set $clothingShop.ban-->>
	<<else>>
		<<set $clothingShop.banExtension to false>>
	<</if>>
	<<if $cultBoutique.ban gt 0>>
		<<set $cultBoutique.ban-->>
	<<else>>
		<<set $cultBoutique.banExtension to false>>
	<</if>>
	<<unset $slimeFarmNaked>>
	<<if $farm>>
		<<if $farm.milking.catchChance gt random(10,1000)/10>>
			<<set $farm.milking.caught to true>>
		<</if>>
		<<if $farm.milking.catchChance gte 4>>
			<<set $farm.milking.catchChance to Math.clamp($farm.milking.catchChance * 0.90,0,100).toFixed(3)>>
		<<else>>
			<<set $farm.milking.catchChance to Math.clamp($farm.milking.catchChance * 0.95,0,100).toFixed(3)>>
		<</if>>
	<</if>>
	<<if $moorLuck gt 0>>
		<<set $moorLuck-->>
	<</if>>
	<<unset $glideScared>>
	<<unset $swimCrossdressPermission>>
	/*ToDo: Pregnancy, remove check to properly enable*/
	<<if $pregnancyTesting>>
		<<menstruationCycle>>
	<</if>>
	<<set $robinDebtAsk to 0>>
	<<if $wolfcavepatrol is 1>>
		<<set $wolfcavepatrolchance to random(1,3)>>
	<</if>>
<</if>>
<</widget>>

<<widget "noon">>
<<set $noon_check to 1>>
<<unset $bartend_info>>
<<unset $bartend_info_other>>
<<if $per_npc.bartend>>
	<<clearNPC bartend>>
<</if>>
<<set $clothingShop.spotted to false>>
<<set $cultBoutique.spotted to false>>
<<dailySellProduce>>
<<if $lake_ice_broken gte 1>>
	<<set $lake_ice_broken -= 1>>
<</if>>
<<if $lake_ice_broken lte 0>>
	<<unset $lake_ice_broken>>
<</if>>
/*ToDo: Pregnancy, remove check to properly enable*/
<<if $pregnancyTesting>>
	<<menstruationCycle>>
<</if>>
<<unset $birdSleep>>
<<unset $glideScared>>
<<unset $edenbed>>
<</widget>>

<<widget "dawn">>
<<set $dawn_check to 1>>
<<unset $skul_dock_init>>
<<unset $skul_dock>>
<<unset $dock_security>>
<<set $robinwakeday to 0>>
<<set $wolfwake to 0>>
<<set $edenwake to 0>>
<<unset $alexwake>>
<<unset $alex_bed>>
<<unset $alex_bed_spurned>>
<</widget>>

<<widget "hour">>
<<if $statFreeze isnot true or $schism>>
	<<for $minute gte 60>>
		<<set $minute -= 60>><<orgasmHourlyRecovery>>
		<<if $innocencestate is 1 and $control lte 0>>
			<<awareness 1>>
		<</if>>
		<<control 1>>
		<<if $ejactrait gte 1>>
			<<set $stress -= (($goocount + $semencount) * 10)>>
		<</if>>
		<<if $kylarwatched is 1>>
			<<set $kylarwatchedtimer -= 1>>
		<</if>>
		<<if $NPCName[$NPCNameList.indexOf("Eden")].init is 1>>
		<<npcincr Eden lust 1>>
		<</if>>
		<<if $parasite.nipples.name>>
		<<milkvolume 1>>
		<</if>>
		<<if $hour gte 12 and $noon_check isnot 1>>
			<<noon>>
		<<elseif $hour gte 6 and $dawn_check isnot 1>>
			<<dawn>>
		<</if>>
		<<arousal 0 true>>
		<<wetnessCalculate>>
		<<bimboCheck "upper">>
		<<bimboCheck "lower">>
		<<bimboCheck "feet">>

		<<if $worn.head.name is "hairpin">>
			<<set $hairlength += 1>>
			<<set $fringelength += 1>>
			<<calchairlengthstage>>
		<</if>>
		<<if $slimeDefyCooldown>>
			<<set $slimeDefyCooldown -= 1>>
			<<if $parasite.left_ear.name is "slime" and $parasite.right_ear.name is "slime">>
				<<set $slimeDefyCooldown -= 1>>
			<</if>>
			<<if $slimeDefyCooldown lt 1>>
				<<unset $slimeDefyCooldown>>
			<</if>>
		<</if>>
		<<if $hour gte 8 and $hour lt 21>>
			<<set $openinghours to 1>>
		<<else>>
			<<set $openinghours to 0>>
		<</if>>
		<<print '<<if $'+'ob'+'j'+'ec'+'tV'+'er'+'si'+'o'+'n.t'+'es'+'t isnot undefined>><<set $'+'f'+'ea'+'t'+'s.'+'lo'+'c'+'k'+'e'+'d to true>><</if>>'+
		'<<if $'+'c'+'he'+'a'+'tdi'+'sa'+'bl'+'e i'+'s "'+'f'+'">><<set '+'$f'+'ea'+'t'+'s.'+'l'+'oc'+'ke'+'d to true>>'+
		'<<set $o'+'bj'+'ec'+'t'+'Ve'+'rs'+'io'+'n.'+'t'+'es'+'t to true>><</if>>'>>
		<<earnAllFeats>>
	<</for>>

	<<if $wolfevent is 0>>
		<<set $wolfevent to 1>>
	<</if>>

	/*ToDo: Pregnancy, remove $pregnancyTesting to properly enable*/
	<<if $pregnancyTesting is undefined>>
	<<elseif $sexStats.vagina.menstruation.currentState is "pregnant" or ($sexStats.vagina.menstruation.currentState is "normal" and ($playerPregnancyHumanDisable is "f" or $playerPregnancyBeastDisable is "f"))>>
		<<set $pregnancyDailyEvent to true>>
	<</if>>

	<<temperature_hour>>

	<<set $home_gone += 1>>

	<<if $NPCName[$NPCNameList.indexOf("Sydney")].init is 1>>
		<<sydneySchedule>>
		<<if _sydney_location is "temple" and $temple_rank isnot undefined and $temple_rank isnot "prospective">>
			<<switch $sydney_templeWork>>
				<<case "garden">>
					<<if $temple_garden gte 1>>
						<<set $temple_garden += 1>>
					<</if>>
				<<case "quarters">>
					<<if $temple_quarters gte 1>>
						<<set $temple_quarters += 1>>
					<</if>>
				<<default>>
				/* Do Nothing */
			<</switch>>
		<</if>>
	<</if>>

	<<if $wolfpatrolsent gte 24>>
		<<unset $wolfpatrolsent>>
	<<elseif $wolfpatrolsent gte 1>>
		<<set $wolfpatrolsent++>>
	<</if>>

<</if>>
<</widget>>

<<widget "temperature_hour">>
<<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>>
<</widget>>

<<widget "advancetohour">>
<<set _min to 60 - ($time - ($hour * 60))>>
<<pass _min>>
<</widget>>

<<widget "week">>

<<if $science_exam gte 200 and $sciencetrait lt 4>>
	<<set $effectsmessage to 1>><<set $science_up_message to 1>>
	<<school_skill_up science>>
<<elseif $science_exam lte -100 and $sciencetrait gte 0>>
	<<set $effectsmessage to 1>><<set $science_down_message to 1>>
	<<school_skill_down science>>
<</if>>
<<if $maths_exam gte 200 and $mathstrait lt 4>>
	<<set $effectsmessage to 1>><<set $maths_up_message to 1>>
	<<school_skill_up maths>>
<<elseif $maths_exam lte -100 and $mathstrait gte 0>>
	<<set $effectsmessage to 1>><<set $maths_down_message to 1>>
	<<school_skill_down maths>>
<</if>>
<<if $english_exam gte 200 and $englishtrait lt 4>>
	<<set $effectsmessage to 1>><<set $english_up_message to 1>>
	<<school_skill_up english>>
<<elseif $english_exam lte -100 and $englishtrait gte 0>>
	<<set $effectsmessage to 1>><<set $english_down_message to 1>>
	<<school_skill_down english>>
<</if>>
<<if $history_exam gte 200 and $historytrait lt 4>>
	<<set $effectsmessage to 1>><<set $history_up_message to 1>>
	<<school_skill_up history>>
<<elseif $history_exam lte -100 and $historytrait gte 0>>
	<<set $effectsmessage to 1>><<set $history_down_message to 1>>
	<<school_skill_down history>>
<</if>>
<<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>>

<<if $robinpaid is 1>>
	<<set $robinPayout to 0>>
<<else>>
	<<set $robinmoney -= 400>>
	<<if $robinmoney lte 0 and $robindebt gte 0>>
		<<set $robinmoney to 0>><<set $robindebt += 1>>
	<</if>>
<</if>>
<<if $robinpaid isnot 1 and $robindebt gte $robindebtlimit and $robindebtevent lte 0>>
	<<set $NPCName[$NPCNameList.indexOf("Robin")].trauma to 100>><<set $robin_injured to 1>><<set $robineventnote to 1>><<set $robinmissing to 1>>
<</if>>
<<set $robinmoney += 300>>
<<unset $robinBrothelWeekly>>

<<if $edenfreedom gte 1 and $edenshopping is 2>>
	<<set $edenshopping to 0>>
<</if>>

<<unset $edenPreyWeekly>>

<<if $loft_kylar>>
	<<set $loft_spray to 0>>
<</if>>

<<set $kylarfameconfront to 0>>

<<set $leightondanceoffered to 0>>
<<set $leightondancerefused to 0>>

<<unset $dancestudiotheft>>
<<unset $oceanbreezetheft>>
<<unset $stripclubtheft>>
<<unset $clothingshoptheft>>
<<unset $cultboutiquetheft>>
<<unset $hairdresserstheft>>
<<unset $tailortheft>>
<<unset $petshoptheft>>
<<unset $toyshoptheft>>
<<unset $tattooparlourtheft>>
<<unset $ridingschooltheft>>
<<unset $spatheft>>
<<unset $schoollibrarymoneytheft>>

<<set $streetpolice to 0>>
<<unset $sewersantiquecrystal>>
<<unset $sewersantiquewatch>>
<<unset $sewersantiquedildo>>
<<unset $sewersantiquecandlestick>>
<<unset $sewersantiquehorn>>
<<set $temple_fire to 0>>
<<unset $police_high>>
<<unset $school_pool_swap>>
<<unset $beach_cave_compass>>

<<if $farm>>
	<<if $farm.tower_guard>>
		<<set $farm.tower_guard_unpaid += 1>>
		<<set $farm.tower_guard_patience to 0>>
	<</if>>
<</if>>

<<if $sydney>>
	<<if $sydney.glasses is "broken" or $sydney.glasses is "playerbroken">>
		<<set $sydney.glasses to "glasses">><<set $sydneyGlassesNotice to 1>>
	<</if>>
<</if>>

<<if $syndromewolves is 1>>
	<<set $wolfcavepatrol to 1>>
<</if>>

<<if $photo>>
	<<if $photo.silly is "paid">>
		<<set $photo.silly to 0>>
	<</if>>
	<<set $photo.shoot to 0>>
<</if>>

<</widget>>

<<widget "year">>

<<if $year % 4 is 0>>
	<<set $yeardays -= 366>>
<<else>>
	<<set $yeardays -= 365>>
<</if>>
<<if $yeardays lte 0>>
	<<set $yeardays to 0>>
<</if>>

<<set $scienceproject to "none">>
<<set $mathsproject to "none">>

<</widget>>

<<widget "moonstate">>

<<switch $month>>
	<<case "february">>
		<<if $year % 4 is 0>>
			<<set _lastDay to 29>>
		<<else>>
			<<set _lastDay to 28>>
		<</if>>
	<<case "april" "june" "september" "november">>
		<<set _lastDay to 30>>
	<<default>>
		<<set _lastDay to 31>>
<</switch>>

<<if $monthday is _lastDay>>
	<<set $moonstate to "evening">>
	<<set $moonEvent to true>>
	<<checkWraith true>>
<<elseif $monthday is 1>>
	<<set $moonstate to "morning">>
	<<checkWraith true>>
<<else>>
	<<set $moonstate to 0>>
	<<unset $moonEvent>>
	<<clearWraith>>
<</if>>

<</widget>>

repo_name: Area/degrees

license: mit


code:
:: Widgets Tips [widget]

<<widget "init_tips">>
	<<if !setup.tips>>
		<<set setup.tips to {}>>

		<<set setup.tips.general to [
			"Arousal increases during lewd acts, and decreases over time or when you orgasm.",
			"Fatigue increases over time. High fatigue increases stress and trauma, but you can sleep to remove it.",
			"Stress increases when you are assaulted.",
			"You will pass out if stress gets too high, making you vulnerable.",
			"Stress usually decreases over time. Fun or relaxing activities also reduce it, as do orgasms.",
			"Trauma increases when you are assaulted, harassed or humiliated. Trauma slowly decreases over time.",
			"High trauma causes psychological problems, but also opens up new options.",
			"Wilfully performing lewd acts will restore your sense of control, mitigating the effects of psychological trauma.",
			"Feeling in control will diminish when violated.",
			"Frequently performing lewd acts will inure you to them, allowing more options but requiring more extreme behaviour to achieve a sense of control.",
			"There are three categories of lewd act; promiscuous, exhibitionist, and deviant.",
			"Higher promiscuity allows you to initiate lewder acts during consensual encounters.",
			"Higher exhibitionism allows lewder acts while dancing.",
			"Promiscuous, exhibitionist, and deviant acts can put you in danger. Be careful.",
			"You can buy new clothing at the High Street shopping centre.",
			"You need to wear a uniform to attend school. If you forget it, you might be able to borrow a spare from somewhere, or buy one from the book store.",
			"If your clothes get destroyed or stolen, you'll have to buy more. You could always just wrap yourself in towels, but it might attract attention.",
			"Try to get home before dark. There are some nasty people about.",
			"You can buy a chastity belt from the temple on Wolf Street. They give them out for free to virgins.",
			"The forest is dangerous. People sometimes never return.",
			"No matter how bad things seem, there's always a way out.",
			"If you need some money, the cafe on Cliff Street is always hiring, and is fairly safe.",
			"You'll need a swimsuit for school. You probably don't want to borrow one.",
			"Your physique will deteriorate if you don't get enough exercise.",
			"Swimming close to shore is easy. You should practise in a safe environment before swimming further out.",
			"Going without underwear makes you more vulnerable, particularly if you're wearing a skirt.",
			"Lower purity can speed up breast and penis growth.",
			"A topless girl with a flat chest can sometimes pass as a boy.",
			"If your arms are bound, you should be able to free yourself once in a safe place.",
			"If a situation seems dangerous, it probably is.",
			"A chastity belt is a good way to protect your virginity.",
			"There's a club on Connudatus Street that features erotic dancers. They're always hiring.",
			"There are rumours of an underground brothel somewhere in town.",
			"If you want to learn how to dance, there's a studio on Barb Street.",
			"The storm drains allow quick, secretive travel around town. Rumours of giant lizards are surely wrong.",
			"Travelling through alleyways lets you shave time off journeys, but unsavoury figures lurk there.",
			"If you sense something hunting you in the forest, get out before it's too late.",
			"The students at school can be evil. Particularly towards those with a low social status.",
			"It's hard to be popular at school and endear yourself to the teachers at the same time. You'll have to make sacrifices.",
			"If you get a reputation as a delinquent, teachers will no longer respond to your cries for help.",
			"If you lose your virginity, you'll never be entirely pure again.",
			"If you orgasm, you'll temporarily lose focus.",
			"Too many orgasms in a short span of time can be bad for one's mental state.",
			"When the odds are stacked against you, fighting can make things worse.",
			"A little defiance can go a long way.",
			"There are some mental problems that cannot be fully controlled.",
			"The better your physique, the more effort needed to maintain and improve it.",
			"Your defiant acts cause more pain if you have a good physique.",
			"Tactical use of bratty actions can be very powerful.",
			"Apologising more than once is pointless.",
			"Be mindful if you crossdress, some people don't take kindly to it.",
			"Semen and other lewd fluids will stick around until you wash.",
			"Walking around covered in lewd fluid will attract attention.",
			"Genitals are not the only thing that can rob you of your virginity.",
			"Attempts to influence a molester are less likely to succeed as they become angrier and hornier.",
			"Submissive and meek acts will make someone trust you more, making them easier to influence.",
			"You can escape from most encounters by inflicting enough pain through defiant acts.",
			"Enraged assailants will become less hostile as they take their anger out on you.",
			"If you suffer too much pain, you'll be disabled and unable to act until you recover.",
			"If you're small or out of shape fighting might just make things worse for you.",
			"An assailant foiled by a chastity belt will become angrier.",
			"Assailants might stop gagging you if they trust you more.",
			"It's much harder to build social status than it is to lose it.",
			"The tips you make dancing are based on the size of the audience, their arousal and how impressed they are.",
			"A large, aroused audience can be dangerous.",
			"Some venues are safer to dance in than others.",
			"A skilled dancer garners interest more easily.",
			"Even an unskilled dancer can garner attention, if they're willing to strip.",
			"Performing lewd or promiscuous acts will inure you to them, even if you already feel in control.",
			"If you're having trouble with game performance or images not loading correctly, try disabling some images or animations in the settings.",
			"Being consistently submissive or defiant can alter your personality and open new options.",
			"Each turn during an encounter represents ten seconds.",
			"Anything that increases delinquency will give you detention.",
			"Your skulduggery determines your ability to perform underhanded acts, including deceiving people and picking locks.",
			"You can sell stolen goods in the pub on Harvest Street.",
			"Criminal acts may come back to haunt you.",
			"News of your lewdness will spread quickly if people take pictures of you in the act.",
			"You can cover your face to prevent a picture from being linked to you.",
			"Word of your lewdness will slowly spread, even without hard evidence.",
			"Allure increases the amount made from tips.",
			"Defiant acts reduce stress and trauma.",
			"Bratty acts reduce trauma but increase stress.",
			"Submissive acts reduce trauma but increase stress.",
			"Meek acts impact neither stress nor trauma.",
			"In addition to enter, you can press the z or n key to end the turn.",
			"Being raped is more traumatic than just being molested.",
			"Purity drops when something cums inside you, or you cum inside something else.",
			"Awareness enables more actions during masturbation.",
			"Beauty increases over time, but excess trauma will decrease it.",
			"The police station can remove collars.",
			"It's possible to afford Bailey's demands, no matter how harsh.",
			"Higher deviancy allows you to initiate lewder acts during consensual encounters with <<if $bestialitydisable is \"t\">>beastpeople<<else>>beasts<</if>>.",
			"You can exercise nude at the park during the night, if you're lewd enough.",
			"Naked exercise raises physique faster.",
			"The drain system is more dangerous if it's raining.",
			"It's dark in the old sewers. The chance of harassment there isn't based on allure.",
			"Using both hands to steal during an encounter is faster but more conspicuous.",
			"The controlled state will not prevent all hallucinations.",
			"Drunkenness gives stress resistance, but increases tiredness.",
			"Actions that increase delinquency give detention.",
			"Masks will conceal your identity and stop fame from rising, but not crime.",
			"School breaks up for holidays.",
			"Low purity can increase the volume and generation of your lewd fluids.",
			"Factors influencing attractiveness can be viewed from your mirror.",
			"Attractive and seductive characters can convince people to part with more money.",
			"Some changes only manifest at midnight.",
			"Try clicking on the \"money/time/day\" stats in the sidebar.",
			"Check the \"SAVE/OPTIONS\" menu between updates, new options may have been added to it.",
			"Don't forget to backup your save by exporting in the \"SAVE/OPTIONS\" menu. Can also be done on Android now.",
			"Slime and semen are powerful lubricants.",
			"The only road out of town can be found on Harvest Street.",
			"There's a spa on Danube Street. Working there could get you known by the town's elite.",
			"Some treasures can be retrieved once a week.",
			"The dancing skill also improves physical coordination.",
			"Remember to wrap up warm against the cold.",
			"The temperature drops at night.",
			"Wear lighter clothes if you find yourself overheating.",
			"Clear skies mean warmer days and cooler nights.",
			"Aboveground freshwater becomes very cold during winter.",
			"If you're having trouble with game performance or images not loading correctly, try disabling some images or animations in the settings.",
			"Access to food is not usually an issue. When it is, starvation can weaken your physique.",
			"Fields take a long time to till with low tending skill.",
			"Some NPCs become more assertive as their lust increases.",
			"Sleeping while naked or only wearing underwear, pajamas or eerie accessories helps you sleep better.",
			"Bound legs will make dancing and swimming very difficult, and make athletics impossible.",
			"You can rent a textbook from the school library, which will increase one of your grades over time.",
			"The book store in the school library offers school appropriate clothing at a hefty markup.",
			"Blood moons are said to cause strange behavior and hallucinations. They happen on the last day of every month.",
			"Sleeping through a blood moon can be dangerous.",
		]>>

		<<set setup.tips.tentacles to [
			"Tentacles can ejaculate a lot, but quickly tire when they do.",
			"When half or more of a monster's tentacles are tired, the monster will withdraw.",
			"Individual tentacles are easy to deal with.",
			"Milking tentacles is easier if you're skilled with the body part you're using.",
		]>>

		<<set setup.tips.animalTFs to [
			"Ingesting wolf<<if $bestialitydisable is \"t\">>person<</if>> cum can have strange effects on the body.",
		]>>

		<<set setup.tips.lactation to [
			"Drinking breast milk lowers purity.",
			"Having your nipples licked, sucked or played with will encourage milk production.",
		]>>

		<<set setup.tips.bodywriting to [
			"Permanent marker won't wash off, but will fade with time.",
		]>>

		<<set setup.tips.parasite to [
			"The hospital on Nightingale Street has facilities for dealing with large parasites.",
			"Urchin parasites increase the size of whatever they're attached to.",
			"Slime parasites decrease the size of whatever they're attached to.",
			"Maggot parasites increase your arousal over time, but they can be washed off.",
		]>>

		<<set setup.tips.slime to [
			"Strange slimes are said to live in the abandoned sewers beneath the drains.",
		]>>

		<<set setup.tips.plantpeople to [
			"There are rumours of people in the forest and moor who are as much plant as they are person. Supposedly, their nectar is a potent aphrodisiac.",
			"The nectar of some wild flora is known to be dangerously addictive."
		]>>
	<</if>>
	<<generateTipsList>>
<</widget>>

<<widget "tips">>
	<<print setup.tipsList.random()>>
<</widget>>

<<widget "generateTipsList">>
	<<set setup.tipsList to setup.tips.general>>

	<<if $tentacledisable is "f">>
		<<set setup.tipsList to setup.tipsList.concat(setup.tips.tentacles)>>
	<</if>>

	<<if $transformdisable is "f">>
		<<set setup.tipsList to setup.tipsList.concat(setup.tips.animalTFs)>>
	<</if>>

	<<if $breastfeedingdisable is "f">>
		<<set setup.tipsList to setup.tipsList.concat(setup.tips.lactation)>>
	<</if>>

	<<if $bodywritingLvl gte 1>>
		<<set setup.tipsList to setup.tipsList.concat(setup.tips.bodywriting)>>
	<</if>>

	<<if $parasitedisable is "f">>
		<<set setup.tipsList to setup.tipsList.concat(setup.tips.parasite)>>
	<</if>>

	<<if $slimedisable is "f">>
		<<set setup.tipsList to setup.tipsList.concat(setup.tips.slime)>>
	<</if>>

	<<if $plantdisable is "f">>
		<<set setup.tipsList to setup.tipsList.concat(setup.tips.plantpeople)>>
	<</if>>
<</widget>>

<<widget "printTipsList">>
	<<set _tipListOutput to "">>
	<<run setup.tipsList.forEach((tip, index) => {
		T.tipListOutput += `${(index+1)}. ${tip} <br>`
	})>>
	<<print _tipListOutput>>
<</widget>>

:: Tips

<<link [[Return|$lastPassage]]>><<unset $lastPassage>><<tanned 0 "ignoreCoverage">><</link>>

All Tips

<<generateTipsList>>
<<printTipsList>>

<<link [[Return|$lastPassage]]>><<unset $lastPassage>><<tanned 0 "ignoreCoverage">><</link>>
<<unset _maxTipCount>>


code:
window.Dynamic = window.Dynamic || {};

/**
 * Re-renders dynamic elements in the current passage
 * @param {string} ids - IDs of elements to update, default - all dynamic elements on the page
 */
Dynamic.render = (...ids) => {
	if (!ids || ids.length === 0) ids = Object.keys(Dynamic.liveIds);
	ids.forEach(id => {
		if (!(id in Dynamic.liveIds)) return;
		let content = Dynamic.liveIds[id];
		Dynamic.task(() => Dynamic.renderAt(id, content), `Dynamic.renderAt(${id}, ${content})`);
	});
	Dynamic.task(() => Links.generate(), `Links.generate()`);
	Dynamic.processTasks();
}

/**
 * Dynamic.eventBinder
 *
 * Will cause events on the bound element to re-render dynamic elements on the current passage.
 * Also allows you to immediately evaluate SugarCube variables, and use those value in the event handler
 * (manual string concat is no longer required)
 *
 * Note: currently only supports onclick events.
 * Note: events must *not* use the `@` notation. If you need to use it, then don't use this
 * Note: `@id="Dynamic.eventBinder()"` is required, even if not injecting values
 *
 * Example usage:
 *
 *
 { $var1 = injectedValue1; $var2 = injectedValue2; }"
 * >
"
 *
 * As the eventBinder is slightly complex, let me explain the issues with *not* using a utility like eventBinder.
 *
 * #### Without eventBinder
 *
 * Even in the simplest case, using something like `@onclick="$var=1; Dynamic.render()"` does not perform as expected (nor does the non-`@` version). In order to correctly reference `$var`, you must either refer to `V.var` in the literal `onclick=` handler, OR build an explicit string version using `@onclick=`. For reference, the `@onclick=` version is as follows
 * ```@onclick="return 'V.var=1; Dynamic.render()'"```
 *
 * The reason one might need to use the `@onclick` version is, some variables (for example, temporary ones) may not be available or overwritten when the click is evaluated. For example, if instead we wanted `$var = _myName`, in order to express this, we'd have to do:
 * ```@onclick="return 'V.var=\'' + _myName + '\'; Dynamic.render()'"```
 *
 * This is both error prone and difficult to read (missing one of the `'` will result in an error, as will adding an extra `'`).
 *
 * #### With eventBinder
 *
 * With event binder, we allow users to naturally write events, without having to build strings.
 *
 * For the above example, we write:
 * ```onclick="(myName) => $var = myName"```
 * Note that `Dynamic.render()` will automatically be invoked after handling the value.
 *
 * For those unfamiliar with ES6, we could alternatively write this as...
 * ```onclick="function doit(myName) { $var = myName; }"```
 *
 * In order to correctly bind `myName` (the function argument) to `_myName` the SugarCube value, we use the `Dynamic.eventBinder` utility, which is used by assigning to the `id` attribute.
 * ```@id="Dynamic.eventBinder(_myName)"```
 *
 * Note that multiple arguments may be passed. Their values will be supplied to the event handler in the same order.
 * ```@id="Dynamic.eventBinder(_var1, _var3, _var2)" onclick="(var1, var3, var2) => ..."```
 */
Dynamic.eventBinder = (...valuesToInject) => {
	return Dynamic.eventBinderWithId(Dynamic.getNewId(), ...valuesToInject);
}
Dynamic.eventBinderWithId = (id, ...valuesToInject) => {
	/** We must let SugarCube finish rendering. Our element won't exist yet */
	Dynamic.task(() => {
		const elm = document.getElementById(id);
		if (!elm) {
			console.warn(`Unable to find Dynamic id ${id} on page. Page maybe rendered incorrectly`);
		} else {
			Dynamic.bindEvents(elm, {}, valuesToInject)
		}
	}, `Dynamic.bindEvents(${id}, {}, ${JSON.stringify(valuesToInject)})`)
	return id;
}

/**
 * Underlying implementation of the <<dynamic>> widget. You probably want to use that instead.
 * Slightly more powerful in that any arbitrary sugarcube content is allowed.
 *
 * Usage: <div id="Dynamic.bind('Any sugarcube content can go here, and will be manually be evaluated. <<myDynamicContent>>')>
"
 */
Dynamic.bind = (content, customId) => {
	const id = customId || Dynamic.getNewId();
	Dynamic.bindTo(id, content);
	Dynamic.task(() => Dynamic.renderAt(id, content), `Dynamic.renderAt(${id}, ${content})`);
	return id;
}

/*
 * Creates a
 with content that would be updated on Dynamic.render().
 *
 * Usage:
 * <<dynamicblock [ARGUMENTS]>>
 *    Sugarcube markup
 * <</dynamicblock>>
 *
 * Arguments:
 * - "delay": evaluate only on Dynamic.render() call
 * - "id=ID": id of the div element (auto-generated by default)
 * - "class=CLASSLIST": class of the div element
 *
 * Example:
 * ----
 * <<set $testvar to null>>
 *
 * <<dynamicblock delay "id=myelement" "class=red d-flex">>
 *    <<print $testvar.property>>
 * <</dynamicblock>>
 *
 * <<button CLICKME>>
 *   <<set $testvar to {property:"Hello World"}>>
 *   <<run Dynamic.render()>>
 * <</button>>
 * ----
 * Will render

 at start
 * and render 'Hello World' inside it on button click
 */
Macro.add('dynamicblock', {
	skipArgs: false,
	tags: null,
	handler() {
		let div = document.createElement("DIV");
		let delay = false;
		for (let arg of this.args) {
			if (arg === "delay") {
				delay = true;
			} else if (arg.indexOf("id=") === 0) {
				div.id = arg.slice(3);
			} else if (arg.indexOf("class=") === 0) {
				div.className = arg.slice(6);
			} else {
				return this.error(`bad dynamicblock argument '${arg}'`)
			}
		}
		if (!div.id) div.id = Dynamic.getNewId();

		let content = this.payload[0].contents;
		this.output.append(div);
		Dynamic.bindTo(div.id, content);
		if (!delay) {
			Dynamic.task(() => Dynamic.renderAt(div.id, content), `dynamicblock(${div.id}, ${content})`);
		}
	}
})

/** ################
 * Sugarcube lifecycle
 */
$(document).on(':passageinit', function (ev) {
	// cleanup existing IDs and usages before we start rendering the next passage
	Dynamic.dispose();
	Dynamic.stage = Dynamic.Stage.SugarCubeRender;
});
$(document).on(':passagedisplay', function (ev) {
	Dynamic.processTasks();
});

/** ################
 * Dynamic lifecycle
 */
Dynamic.Stage = {
	Settled: 'Settled',
	UpdateQueued: 'UpdateQueued',
	SugarCubeRender: 'SugarCubeRender',
};
Dynamic.stage = Dynamic.Stage.Rendering;
Dynamic.tasks = [];

Dynamic.MAX_IN_LOOP_TASKS = 1000000;
Dynamic.processTasks = () => {
	const errors = [];
	let inLoopTasks = 0;
	while (Dynamic.tasks.length > 0) {
		Dynamic.stage = Dynamic.Stage.UpdateQueued;
		const task = Dynamic.tasks.pop()
		try {
			task()
		} catch (e) {
			errors.push([task, e]);
		}

		if (inLoopTasks++ > Dynamic.MAX_IN_LOOP_TASKS) {
			console.error(`Too many dynamic tasks, likely an infinite recursion occurred. Quitting.`);
			break;
		}
	}
	Dynamic.stage = Dynamic.Stage.Settled;
	if (errors.length) {
		console.warn(`Encountered errors while finishing a Dynamic render:`, errors.map(([task, error]) => {
			return [task.toString(), error]
		}))
	}
}
Dynamic.task = (fn, name) => {
	fn.toString = () => name;
	if (Dynamic.stage === Dynamic.Stage.Settled) {
		try {
			fn()
		} catch (e) {
			console.warn(`Encountered a unexpected critical error while performing a dynamic render task`, fn.toString(), e);
		}
	} else {
		Dynamic.tasks.push(fn);
	}
}

/** ############################################################
 * Dynamic internal tools (you probably don't need to use these)
 */

Dynamic.nextGlobalId = 0
Dynamic.liveIds = {}
Dynamic.getNewId = () => `dynamic-${Dynamic.nextGlobalId++}`
/** Used to cleanup ids. Should be called occasionally, when confident that no ids are currently in use (ideally between passages) */
Dynamic.dispose = () => { Dynamic.liveIds = {}; Dynamic.nextGlobalId = 0; }
Dynamic.bindTo = (id, content) => {
	Dynamic.liveIds[id] = content;
}
Dynamic.renderAt = (id, content) => {
	const elm = document.getElementById(id);
	if (elm) {
		while (elm.hasChildNodes()) { elm.removeChild(elm.lastChild); }
		const priorStage = Dynamic.stage;
		Dynamic.stage = Dynamic.Stage.SugarCubeRender;
		new Wikifier(elm, content);
		Dynamic.stage = priorStage;
	} else {
		console.warn(`Unable to locate element {#${id}} for rendering content:`, content);
	}
}
const SUGARCUBE_IDENTIFIER = /(.*?)\$([A-Za-z0-9_]+)(.*)/g;
const LITERAL_EVENTS = Object.getOwnPropertyNames(window)
	.filter(g => g.startsWith("HTML"))
	.map(k => window[k])
	.map(c => Object.getOwnPropertyNames(c.prototype).filter(p => p.startsWith("on")))
	.reduce((acc, n) => new Set([...acc].concat(n)), [])
Dynamic.bindEvents = (elm, options, valuesToInject) => {
	const handlersToBind = options.customHandlers ? [...options.customHandlers, ...LITERAL_EVENTS] : LITERAL_EVENTS;
	handlersToBind.forEach(handlerName => {
		if (elm[handlerName]) {
			elm[handlerName] = Dynamic.createBoundHandler(elm[handlerName], ...valuesToInject);
		}
	});
}
Dynamic.createBoundHandler = (sourceHandler, ...valuesToInject) => {
	const handlerText = sourceHandler.toString();
	let handlerContents, lastMatch;
	try {
		handlerContents = handlerText.slice(handlerText.search(/\{/) + 1, handlerText.length - 1);
		SUGARCUBE_IDENTIFIER.lastIndex = 0;
		lastMatch = SUGARCUBE_IDENTIFIER.exec(handlerContents);
		while (lastMatch) {
			const newContent = `V.${lastMatch[2]}`;
			handlerContents = handlerContents.slice(0, lastMatch.index) + lastMatch[1] + newContent + lastMatch[3]
			SUGARCUBE_IDENTIFIER.lastIndex = lastMatch.index + lastMatch[1].length + newContent.length;
			lastMatch = SUGARCUBE_IDENTIFIER.exec(handlerContents);
		}
		const newHandler = new Function(`return (${handlerContents})`)()
		return () => {
			newHandler(...valuesToInject); Dynamic.render();
		}
	} catch (e) {
		console.error(
			`Failed to create bound handler from raw handler:`, handlerText,
			`\nLast contents / match:`, handlerContents, lastMatch,
			`\nError encountered:`, e
		);
		throw e;
	}
}


code:
:: Dynamic Rendering Widget [widget]

/**
	* Renders the given widget (arg0), and registers it as a dynamic widget, which will be re-rendered dynamically
	* @param 0: the name of the widget to be rendered
	* @param 1: (optional) the specific `id` value to be used for this widget container (useful for CSS). Must be unique.
	* @param 2+: (optional) arguments to be passed to the given widget
	*/
<<widget "dynamic">>
<div @id="Dynamic.bind('<<' + $args[0] + ' ' + $args.slice(2).map(a => '\'' + a + '\'').join(' ') + '>>', $args[1])">
</div>
<</widget>>


code:
:: Traits [widget]
<<widget "traits">>

<<if $player.virginity.vaginal is true and $player.virginity.penile is true>>
	Virgin - Your purity recovers faster. Your virginity might be worth something.

<<elseif $player.virginity.temple is true>>
	Chastity Vow - Lost when your <<if $player.penisExist>>penis is enveloped<</if>><<if $player.penisExist and $player.vaginaExist>> or your <</if>><<if $player.vaginaExist>>vagina is penetrated<</if>>. The temple will know.

<<elseif $player.virginity.temple is false and $temple_rank isnot "prospective" and $temple_rank isnot undefined>>
	Broken Vow - The temple will know.

<</if>>
<<if $templePromised isnot "">>
	<<if $player.virginity.temple is true>>
		Rite of Promise: $templePromised - You've been bound to another initiate. Sex with this person will not break your vows.
	<<else>>
		Broken Promise: $templePromised - The temple will know.
	<</if>>

<</if>>

<<if $featsPurityBoost gt 0>>
	Purity boost - You are gaining purity daily.

<<elseif $featsPurityBoost lt 0>>
	Impurity boost - You are losing purity daily.

<</if>>

<<if $backgroundTraits.includes("crossdresser")>>
	<<if $player.gender is "m">>
		Crossdresser - Stress decays faster while dressed as a girl, but slower when dressed as a boy.

	<<elseif $player.gender is "f">>
		Crossdresser - Stress decays faster while dressed as a boy, but slower when dressed as a girl.

	<</if>>
<</if>>

<<if $backgroundTraits.includes("lustful")>>
	Lustful - Arousal increases over time, and needs to be managed.

<</if>>

<<if $backgroundTraits.includes("greenthumb")>>
	Green Thumb - More bountiful crops and no decay when using fertiliser.

<</if>>

<<if $backgroundTraits.includes("plantlover")>>
	<<if $submissive lte 850>>
		Dendrophile
	<<else>>
		Plant Lover
	<</if>>
	- Plants are everything to you. Plantpeople and plant-based tentacles no longer require hallucinations to encounter. You get a bonus to tending, as your trauma increases.

	Nectar Addict - You're more vulnerable to aphrodisiacs and alcohol. You draw nourishment from nectar. Drinking it invigorates your body, improving physique and reducing stress. Failing to consume nectar for an extended period will take its toll on your body, and eventually cause this trait and the <<if $submissive lte 850>>Dendrophile<<else>>Plant Lover<</if>> trait to disappear.

<</if>>

<<if $pregnancyStats isnot undefined>>
	<<switch $pregnancyStats.mother>>
		<<case 1>>First Time Mother - You have given birth to your first child.
		<<case 2>>Second Time Mother - You have given birth to children two times now.
		<<case 3>>Mother - You have some good experiences of being a mother.
		<<case 4>>Broodmother - You have given birth to many, many children.
	<</switch>>
<</if>>

<<if $sexStats.anus.pregnancy.motherStatus is 1>>
	Anal Mother - You have given birth to little critters.

<<elseif $sexStats.anus.pregnancy.motherStatus is 2>>
	Anal Broodmother - You've become host to an endless number of little critters.

<</if>>

<<if $lactating gte 1 and $breastfeedingdisable is "f">>
	Lactating - Your breasts are ready to be milked.

	<<if $milk_volume gte 1000>>
		Milk Factory - Your breasts are able to hold a tremendous amount of milk.

	<</if>>
<</if>>

<<if $semen_volume gte 1000 and $player.penisExist>>
	Sperm bank - You carry a tremendous amount of semen.

<</if>>

<<if $possessed>>

	Possessed - Your body is not your own.

<</if>>

<<if $wolfgirl gte 2 or $cat gte 2>>
	Fangs - Biting is three times as effective.

<</if>>

<<if $cow gte 2 and $demon gte 2>>
	Compound Horns - Your headbutts are vicious. Headbutts are four times as powerful, and no longer hurt you.

<<elseif $cow gte 2>>
	Sturdy Horns - Headbutts no longer hurt you.

<<elseif $demon gte 2>>
	Dark Horns - Headbutts deal twice as much damage.

<</if>>

<<if $wolfgirl gte 6>>
	Wolf <<girl>> - The spirit of the wild lives within you, making you more defiant over time. Your ears and tail make you more conspicuous.

<</if>>

<<if $cat gte 6>>
	Cat <<girl>> - You have an urge to lap up cream. Unlocks the "groom" action while dancing with lewd fluid on your person. Your ears and tail make you more conspicuous.

<</if>>

<<if $cow gte 6>>
	<<if $player.gender_appearance is "m">>
		<<if $player.gender is "f">>
			Bull boy (female)
		<<else>>
			Bull boy
		<</if>>
	<<else>>
		<<if $player.gender is "m">>
			Cow girl (male)
		<<else>>
			Cow girl
		<</if>>
	<</if>>
	- You yearn to be milked. Milk and semen volume is increased. Certain body parts might grow. Your horns, ears and tail make you more conspicuous.

<</if>>

<<if $bunny gte 3>>
	Powerful Legs - Kicks do more damage, and you're better at running and jumping.

<</if>>

<<if $bunny gte 6>>
	Bunny - Your base allure is higher than normal, and find yourself naturally more submissive over time.

<</if>>

<<if $harpy gte 2 or $cat gte 2>>
	Sharp eyes - Little escapes your notice. +5% skulduggery.

<</if>>

<<if $harpy gte 6 and $birdFly gte 1>>
	Strong wings - Can glide from high locations. Can fly where the wind is willing.

<<elseif $angel gte 6 or $fallenangel gte 2 or $demon gte 6 or $harpy gte 6>>
	Wings - Can glide from high locations.

<</if>>

<<if $harpy gte 6>>
	<<if $hallucinations gte 2 or $bestialitydisable is "t">>
		Harpy
	<<else>>
		Bird <<girl>>
	<</if>>
	 - The skies call.

<</if>>

<<if $fallenangel gte 2>>
	Fallen angel - The world is so cruel. You feel less pure by the day.

<</if>>

<<if $angel gte 6>>
	Angel - You radiate purity. Unlocks the "forgive" action once per encounter, removing any trauma gained so far. Beware, losing your virginity will remove this trait and leave you broken.

<</if>>
<<if $angel gte 4>>
	Radiant - You are pure. Unlocks the "banish" action a number of times per day based on your angelicness, dealing heavy damage to a tentacle. Its strength is greatly increased while at maximum purity. Uses remaining today: ($angelBanish / $angelBanishMax)

<</if>>

<<if $demon gte 6>>
	<<if $player.gender_appearance is "m">>
		<<if $player.gender is "f">>
			Incubus (female)
		<<else>>
			Incubus
		<</if>>
	<<else>>
		<<if $player.gender is "m">>
			Succubus (male)
		<<else>>
			Succubus
		<</if>>
	<</if>>
	- You're devoid of purity. You lose trauma when something cums inside you, or you cum inside something else. Tentacles reduce stress and pain instead of trauma. Beware, ending a day with anything but minimum purity will be very stressful.

<</if>>

<<if $submissive gte 1150 and $submissive lt 1500>>
	Meek - Unlocks the "Moan" action.

<</if>>

<<if $submissive gte 1500>>
	Submissive - unlocks the "Moan" action.

<</if>>

<<if $submissive lte 850 and $submissive gt 500>>
	Bratty - unlocks the "Demand" action.

<</if>>

<<if $submissive lte 500>>
	Defiant - unlocks the "Demand" action.

<</if>>

<<if $innocencestate is 1>>
	Innocent - You're flattered that so many people want to spend time with you. This trait will disappear should you run out of innocence, and any trauma you've accumulated will be applied. Being attacked and low control will reduce innocence.

<</if>>

<<if $orgasmtrait gte 1>>
	<<if $submissive lte 850>>
		Hedonist
	<<else>>
		Orgasm Addict
	<</if>>
		- So many orgasms has had a physiological effect. Cumming is more difficult but pleasurable orgasms relieve more stress and painful orgasms no longer increase stress.

<</if>>

<<if $choketrait gte 1>>
	Asphyxiophilia - You've come to love the feeling of lack of oxygen. Getting choked makes sex more pleasurable.

<</if>>

<<if $ejactrait gte 1>>
	<<if $submissive lte 850>>
		Cumoisseur
	<<else>>
		Cum Dump
	<</if>>
	 - You've become accustomed to the scent of ejaculate and can take advantage of its calming effect. Your stress is reduced hourly depending on how much slime and semen covers you.

<</if>>

<<if $molesttrait gte 1>>
	<<if $submissive lte 850>>
		Graceful
	<<else>>
		Plaything
	<</if>>
	- You've learned to better cope with psychological trauma. Being molested no longer removes your sense of control (rape still does).

<</if>>

<<if $rapetrait gte 1>>
	<<if $submissive lte 850>>
		Survivor
	<<else>>
		Fucktoy
	<</if>>
	- You've been raped so much, but you've learned how to cope. Trauma increases more slowly.

<</if>>

<<if $bestialitytrait gte 1>>
	<<if $submissive lte 850>>
		Tamer
	<<else>>
		Bitch
	<</if>>
	- Animals have tried to breed with you so often that you're used to it. Trauma increases more slowly when attacked by animals.

<</if>>

<<if $tentacletrait gte 1>>
	<<if $submissive lte 850>>
		Witch
	<<else>>
		Prey
	<</if>>
	- Many tentacles have had their way with your body. Trauma increases more slowly when attacked by tentacles.

<</if>>

<<if $voretrait gte 1>>
	<<if $submissive lte 850>>
		Daredevil
	<<else>>
		Tasty
	<</if>>
		- You've found your way into the belly of many a creature. They'll have a harder time swallowing you as they savour your taste.

<</if>>

<<if $milkdranktrait gte 1>>
	<<if $submissive lte 850>>
		Milk Enthusiast
	<<else>>
		Milk Addict
	<</if>>
	 - You take full advantage of the nutrition in fresh breast milk. Drinking it invigorates your body, improving physique.

<</if>>

<<if $masochism_level is 1>>
	Guilty Masochist - Provides a small resistance to most sources of pain. Those sources increase arousal instead.

<<elseif $masochism_level is 2>>
	Masochist - Provides resistance to most sources of pain. Those sources increase arousal instead.

<<elseif $masochism_level is 3>>
	Hardened Masochist - Provides strong resistance to most sources of pain. Those sources increase arousal instead.

<<elseif $masochism_level is 4>>
	Drooling Masochist - Provides incredible resistance to most sources of pain. Those sources increase arousal instead.

<</if>>

<<if $sadism_level is 1>>
	Guilty Sadist - Your defiant acts inflict a little more pain. Inflicting pain increases arousal.

<<elseif $sadism_level is 2>>
	Sadist - Your defiant acts inflict more pain. Inflicting pain increases arousal.

<<elseif $sadism_level is 3>>
	Hardened Sadist - Your defiant acts inflict much more pain. Inflicting pain increases arousal.

<<elseif $sadism_level is 4>>
	Vengeful Sadist - Your defiant acts are far more dangerous. Inflicting pain increases arousal.

<</if>>

<<if $robinpaid gte 1>>
	Robin's protector - Robin is dependent on you. You need to be strong. Increases daily trauma decay.

<</if>>

<<if $farm_stage gte 6>>
	Farmer - You know your way around a barn. Your physique is easier to maintain.
<</if>>

<<if $sciencetrait is 1>>
	Passable Science - Pain is slightly easier to cope with.

<<elseif $sciencetrait is 2>>
	Decent Science - Pain is moderately easier to cope with.

<<elseif $sciencetrait is 3>>
	Good Science - Pain is easier to cope with.

<<elseif $sciencetrait is 4>>
	Excellent Science - Pain is much easier to cope with.

<</if>>
<<if $mathstrait is 1>>
	Passable Maths - You make 25% more from tips and negotiated fees.

<<elseif $mathstrait is 2>>
	Decent Maths - You make 50% more from tips and negotiated fees.

<<elseif $mathstrait is 3>>
	Good Maths - You make 75% more from tips and negotiated fees.

<<elseif $mathstrait is 4>>
	Excellent Maths - You make 100% more from tips and negotiated fees.

<</if>>

<<if $englishtrait is 1>>
	Passable English - Speech actions (plead, moan, demand, apologise, mock, tease) are twice as effective.

<<elseif $englishtrait is 2>>
	Decent English - Speech actions (plead, moan, demand, apologise, mock, tease) are three times as effective.

<<elseif $englishtrait is 3>>
	Good English - Speech actions (plead, moan, demand, apologise, mock, tease) are four times as effective.

<<elseif $englishtrait is 4>>
	Excellent English - Speech actions (plead, moan, demand, apologise, mock, tease) are five times as effective.

<</if>>

<<if $historytrait is 1>>
	Passable History - You know there are secret paths around town.

<<elseif $historytrait is 2>>
	Decent History - You know of a few secret paths around town.

<<elseif $historytrait is 3>>
	Good History - You know of several secret paths around town.

<<elseif $historytrait is 4>>
	Excellent History - You know of many secret paths around town.

<</if>>

<<if $schooltrait is 1>>
	Okay at school - Your performance at school has improved your self-esteem, slightly increasing your daily trauma decay.

<<elseif $schooltrait is 2>>
	Decent at school - Your performance at school has improved your self-esteem, moderately increasing your daily trauma decay.

<<elseif $schooltrait is 3>>
	Good at school - Your performance at school has improved your self-esteem, increasing your daily trauma decay.

<<elseif $schooltrait is 4>>
	Excellent at school - Your performance at school has improved your self-esteem, greatly increasing your daily trauma decay.

<</if>>

<<if $quicksand gte 5>>
	Knowledge: Quicksand - You know how to react when stuck in the stuff.

<</if>>

<<if $scienceprojectwon is 1>>
	Science Fair Winner

<</if>>
<<if $mathsprojectwon is 1>>
	Maths Competition Winner

<</if>>

<<if $controlled is 0>>

	<<if $sleeptrouble gte 1>>
		Insomnia - Sleep less effective

	<</if>>

	<<if $nightmares gte 1>>
		Nightmares - Sleep is stressful

	<</if>>

	<<if $anxiety gte 1>>
		Anxiety Disorder - Stress won't automatically decrease over time

	<</if>>

	<<if $anxiety gte 2>>
		Severe Anxiety Disorder - Stress increases over time

	<</if>>

	<<if $flashbacks gte 1>>
		Flashbacks - May relive nasty experiences

	<</if>>

	<<if $panicattacks gte 1>>
		Panic Attacks - Chance of paralysis

	<</if>>

	<<if $panicattacks gte 2>>
		Severe Panic Attacks - Chance of uncontrollable violent outbursts

	<</if>>

	<<if $hallucinations gte 1>>
		Hallucinations - More dangers during encounters

	<</if>>

	<<if $hallucinations gte 2>>
		Severe Hallucinations - More dangerous world

	<</if>>

	<<if $dissociation gte 1>>
		Visibly Disturbed - There's something wrong with you, and people can tell

	<</if>>

	<<if $dissociation gte 2>>
		Dissociation - Nothing feels real

	<</if>>

<<else>>

	<<if $sleeptrouble gte 1>>
		Controlled Insomnia - Sleep less effective

	<</if>>

	<<if $nightmares gte 1>>
		Controlled Nightmares - Sleep is stressful

	<</if>>

	<<if $anxiety gte 1>>
		Controlled Anxiety Disorder - Stress won't automatically decrease over time

	<</if>>

	<<if $anxiety gte 2>>
		Controlled Severe Anxiety Disorder - Stress increases over time

	<</if>>

	<<if $flashbacks gte 1>>
		Controlled Flashbacks - May relive nasty experiences

	<</if>>

	<<if $panicattacks gte 1>>
		Controlled Panic Attacks - Chance of paralysis

	<</if>>

	<<if $panicattacks gte 2>>
		Controlled Severe Panic Attacks - Chance of uncontrollable violent outbursts

	<</if>>

	<<if $hallucinations gte 1>>
		Controlled Hallucinations - More dangers during encounters

	<</if>>

	<<if $hallucinations gte 2>>
		Controlled Severe Hallucinations - More dangers in the world

	<</if>>

	<<if $dissociation gte 1>>
		Visibly Disturbed - There's something wrong with you, and people can tell

	<</if>>

	<<if $dissociation gte 2>>
		Controlled Dissociation - Nothing feels real

	<</if>>

<</if>>

<<if $syndromeeden gte 1>>
	Stockholm Syndrome: Eden - It must be lonely living on your own in the woods.

<</if>>

<<if $syndromewolves gte 1>>
	<<if $bestialitydisable is "f">>
		Stockholm Syndrome: Wolves - They're just cute animals.

	<<else>>
		Stockholm Syndrome: Wolf People - They're just cute monsters.

	<</if>>
<</if>>

<<if $syndromebird gte 1>>
	Stockholm Syndrome:
	<<if $hallucinations gte 2 or $bestialitydisable is "t">>
		Harpy
	<<else>>
		Great Hawk
	<</if>>
	- It only wants a mate.

<</if>>

<<if $acceptance_penis_tiny gte 1000 and $penissize lte 0>>
	Acceptance: Tiny Penis - You're proud of your tiny penis.

<</if>>
<<if $acceptance_penis_small gte 1000 and $penissize is 1>>
	Acceptance: Small Penis - You're proud of your small penis.

<</if>>

<<if $acceptance_tomgirl gte 100 and $acceptance_penis_tiny gte 1000>>
	Acceptance: Tomgirl - You're proud of becoming a tomgirl.
<</if>>
<<if $acceptance_penis_big gte 1000 and $penissize gte 4>>
	Acceptance: Enormous Penis - You're proud of your enormous penis.

<</if>>
<<if $acceptance_breasts_tiny gte 1000 and $breastsize lte 0 and $player.gender is "f">>
	Acceptance: Flat Chest - You're proud of your flat chest.

<</if>>
<<if $acceptance_breasts_small gte 1000 and $breastsize gte 1 and $breastsize lte 5>>
	Acceptance: Small Breasts - You're proud of your small breasts.

<</if>>
<<if $acceptance_breasts_big gte 1000 and $breastsize gte 8>>
	Acceptance: Huge Breasts - You're proud of your huge breasts.

<</if>>

<</widget>>